| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 15:15:10
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Pessoal,
Qual a melhor forma de exibir os dados de beans aninhados e colecoes em um form?
Exemplo:
Pessoa: nome (string), idade (int) e uma lista de Carro.
Carro: marca (string), ano (int).
Exibir textualmente fica facil com as tags out e list/loop. E para o input? O que eh recomendado?
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 15:53:43
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Não entendi o seu problema.
<mtw:input> ????
Detalha melhor o problema !
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 16:24:45
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Vamos la... imagine que tenho as classes Pessoa e Carro:
Code:
public class Pessoa {
private String nome;
private List<Carro> carroList;
// gets e sets...
}
Code:
public class Carro {
private String modelo;
private int ano;
// gets e sets...
}
Ai eu tenho essa Action:
Code:
public class ShowAction extends BaseAction {
public String execute() throws Exception {
Carro c1 = new Carro("Uno", 2000);
Carro c2 = new Carro("Corsa", 2001);
Pessoa p = new Pessoa("juquinha");
p.addCarro(c1); p.addCarro(c2);
this.output("cliente", p);
return SUCCESS;
}
}
Dessa forma eu gostaria de exibir todos esses dados em um formulario HTML:
Code:
<%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw" %>
<!-- pseudo-codigo -->
Nome: <mtw:input type="text" name="cliente.nome" />
<br/>
<mtw:list value="cliente.carroList">
<mtw:isEmpty>Sem carros.</mtw:isEmpty>
<mtw:loop var="carro">
Modelo: <mtw:input type="text" name="carro.modelo"/><br/>
Ano: <mtw:input type="text" name="carro.ano"/><br/>
</mtw:loop>
</mtw:list>
Talvez eu esteja comendo bola mas nao percebi como exibir os dados dos carros neste caso... qual a maneira mais simples/facil/recomendada? (considerando que depois os dados serao utilizados em outra Action pra atualizar informacoes dos objetos).
Obrigado...
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 16:57:09
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
É isso mesmo que vc fez, certo.
Só que não funciona pois o name="carro.nome", não está sendo suportado.
Ele só suporta "carro" e pega do output e/ou do input, ou seja, uma bosta.
Vou consertar isso para a versão 1.3, para funcionar como o mtw:out.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 21:23:07
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
to usando jstl por enquanto pra esse lance ai, mas quando sair no mentawai vou fazer refactor nao tenho preguiça de fazer nao, é melhor padronizar do que virar samba.
Queria poder participar da equipe do mentawai mas se eu fizer isso eu passo fome aqui no ceará :]
Atenciosamente,
Hélio Frota
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 22:01:59
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Obrigado pelo retorno Sergio. Era isso mesmo que eu precisava saber. Vou contornar por enquanto com JSTL tambem e acompanhar o desenvolvimento.
Lobo wrote:
t1o usando jstl por enquanto pra esse lance ai, mas quando sair no mentawai vou fazer refactor nao tenho preguiça de fazer nao, é melhor padronizar do que virar samba.
Obrigado pela manifestacao Helio. Voce poderia mandar um exemplozinho basico de como fazer isso com JSTL? Voce utiliza a JSTL "padrao" ou as tags extras do Jakarta Taglibs?
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2006 22:53:34
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
Certo , vou simplificar o exemplo que uso para o perguntas freqüêntes no site ok..
Code:
package bean;
public class Pergunta {
...
private String pergunta;
private String resposta;
....
etc ...
Code:
public String execute() throws Exception {
//jogo a lista no output pra mostrar com o
//jstl
ArrayList lista = (ArrayList)PerguntaDao.getAll();
output.setValue("lista", lista);
return SUCCESS;
}
Code:
<c:forEach var="obj" items="${lista}" >
${obj.pergunta} <br />
${obj.resposta}
</c:forEach>
ou
<c:forEach var="obj" items="${lista}">
<c:out value="${obj.pergunta}" /> <br />
<c:out value="${obj.resposta}" />
</c:forEach>
Espero ter ajudado em alguma coisa.
Atenciosamente,
Hélio Frota
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2006 07:19:57
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Lobo wrote:
Certo , vou simplificar o exemplo que uso para o perguntas freqüêntes no site ok..
Obrigado Helio. Essa tag c:out eh pra imprimir o valor, certo? (como o out do mtw)
Pra formularios o que voce usa? Estou olhando essa: http://jakarta.apache.org/taglibs/doc/input-doc/index.html
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2006 08:27:42
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
uso input do html mesmo
<input type="text" name="pergunta" value="${obj.pergunta}" />
que fica funcionando como o antigo desenvolvimento com
scriptlets
<input type="text" name="pergunta"
value="<%=(request.getParameter("pergunta") != null ?
request.getParameter("pergunta") : "" )%>" />
os camspos de data e moeda estou migrando pra
inputDate e inputMoney, os selects também estou
migrando pro select do mentawai como também
a geração de checkboxes dinâmicas, este último
eu fazia um c:ForEach e colocava o checkbox
dentro do laço, mas vi a tag checkboxes do mentawai
e é bem menos verbose.
Atenciosamente,
Hélio Frota
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2006 09:02:51
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Assim que eu resolver isso posto aqui, ok ?
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/04/2006 14:47:02
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Resolvi o problema do input pegar do escopo certo o valor ao invés de apenas do output e do input.
Coloquei atributos extra e separator que são opcionais para especificar outros atributos:
Code:
<mtw:input extra="asdfsdaf=safsdaf # safsdafas=asfsadf" />
Por favor baixem e testem !!! (bug nisso seria péssimo !!!)
http://www.mentaframework.org/beta/mentawai.jar
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2006 08:18:04
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Sergio, baixei o JAR mas fui deixar pra ler teu post com calma apenas hoje. Nao entendi esse "extra" - como funcionaria? Pode dar um exemplo simples dentro desse contexto que expliquei anteriormente? Ou o link pra documentacao desses novos atributos, se ja houver - ai eu me viro.
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2006 08:44:48
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
São duas coisas aqui.
Um o seu problema, que foi resolvido.
E outro o problema do extra.
Extra serve para inserir atributos para os quais a tag não possui.
Exemplo, vc tem um atributeo a1 e a2 que a tag input não possui.
Daí vc pode fazer:
Code:
<mtw:input extra="a1=sdfaf # a2=asdfsaf" />
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2006 09:10:29
|
kuchma
Joined: 19/04/2006 15:09:46
Messages: 10
Offline
|
Beleza Sergio. Encontrei um outro obstaculo antes: a tag list suporta apenas listas? Nao conheco o codigo do Mentawai, entao nao sei se eh possivel generalizar pra Collection... se nao houver motivo especifico para usar List acho que Collection seria mais adequado.
Estava tentando listar um Set e nao consegui.
Como paliativo fiz um novo metodo pra retornar o Set em uma List.
Marcio Kuchma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2006 10:12:25
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Realmente. Isso foi mancada minha, pois criei um ListContext (context de lista) ao invés de um CollectionContext (context de collection).
Se bem que ter uma lista ao invés de uma collection, facilita bastante a implementação do PaginatorTag, LoopTag, etc.
Acho que um ListWrapper que recebe um set e simula uma lista resolve o problema rapidamente.
Já modifiquei essa tag para suportar sets agora.
Código beta aqui:
http://www.mentaframework.org/beta/mentawai.jar
OBRIGADO PELA DICA !!!
O que vc tem achado do Menta ??? Pontos fortes e fracos ? Coisas legais e coisas não tão legais ???
Seria muito importante se vc desse sua opinião isenta !
|
Sergio Oliveira
|
|
|
 |
|
|