Pessoal,
to com uma duvida, quero colocar um select com uma list que vem do banco, mas nao sei que hora que faz o contato com o banco. Olha como eu tava pensando em fazer.
Minha JSP que vai precisar desse select
Cadastro de modelo
<ww:form name="'form'" action="'cad_movto.action'" method="'POST'">
<ww:select name="'fabrica'" list="'getFabricas()'"/>
<ww:textfield label="'Nome'" name="'nome'" />
<ww:submit value="'Enviar'" />
</ww:form>
minha cad_modelo.java
[code] private List lista_fabrica;
public List getLista_fabrica() {
try{
Session session = hbm_util.currentSession();
lista_fabrica = session.find("from Fabrica");
}
catch( Exception e)
{ System.out.println( e.getMessage());
return new ArrayList();
}
return lista_fabrica;
}[/code]
Soh que nao da certo neh. Como que faz isso ?
Na propriedade list, não chame pelo método, chame pelo nome que ele automaticamente chama o método get. Assim:
Se você chamou na tag a propriedade fabrica, ele vai procurar o getFabrica(), então troque o nome do seu método get:
Por fim, a tag <ww:select /> tem duas outras propriedades que são interessantes de se preencher: listKey e listValue. Elas indicam como construir a tag: <option value=“listKey”>listValue</option>, ou seja, key é o que é passado como parâmetro no POST no HTTP, value é o que é exibido na lista.
Se os objetos Fabrica possuem um método getId() e outro getNome(), use listKey=“id” listValue=“nome”.
Bom, falei tudo de cabeça, então posso ter errado alguma coisa. Mas faça uns testes e dê uma olhada na documentação das tags:
http://www.opensymphony.com/webwork/wikidocs/UI%20Tags.html
Abraços,
Vítor
Legal a explicação, mas descobri qual era o erro. Eu “entrava” na pagina assim:
Desse jeito dava erro, mas quando coloca ele pra “entrar” via action ele da certo:
Sendo assim no xwork.xml:
<action name="cad_modelo" class="WW.cad_modelo">
<result name="success" type="dispatcher">cad_modelo.jsp</result>
Ai entra uma duvida: Eu achava que o action seria pra “sair” da pagina fazendo a logica de negocio com os valores do formulario. Pra fazer esse formulario que exige um select dinamico eu tenho que fazer duas action? Eu imagino que se eu fizer uma variavel que seria um “flag” ( pra dizer se estou no input ou no submit ) daria certo, mas seria uma gambiarra. Espero eu que tenha uma saida mais inteligente no WW para resolver esse problema.
Valeu.