:D ola povo :D
vou explicar...
estou desenvolvendo um sistema em webwork para gerenciar fazendas e tal.
nisso, uma fazenda pode ter varias safras. meu problema esta no cadastro das safras.
A situação é a seguinte.
É a primeira vez que eu entro na tela de cadastro da nova safra... os dados da fazenda estao todos na tela... se eu der um submit no form da safra e estiver faltando alguma informação, a action retorn ERROR e eu sou direcionado pra mesma tela do formularo so que sem as informações da fazenda
ACTION
public class AddSafra extends ActionSupport implements FazendaStoreAware {
private long codFazenda;
private Safra safra = new Safra();
private FazendaStore fazendaStore;
private Fazenda fazenda = new Fazenda();
public Fazenda getFazenda() {
return fazenda;
}
public void setFazendaStore(FazendaStore fazendaStore) {
this.fazendaStore = fazendaStore;
}
public String execute() throws Exception {
fazenda = fazendaStore.getFazenda(codFazenda);
if (hasErrors()) {
return INPUT;
}
fazenda.addSafra(safra);
fazendaStore.addSafra(safra);
return SUCCESS;
}
public long getCodFazenda() {
return codFazenda;
}
public void setCodFazenda(long codFazenda) {
this.codFazenda = codFazenda;
}
public Safra getSafra() {
return safra;
}
public void setSafra(Safra safra) {
this.safra = safra;
}
}
XWORK.xml
<action name="addsafraform" class="br.com.sementesfroes.actions.fazenda.ViewFazenda">
<result name="error">/errors/notfound.jsp</result>
<result name="success">addsafra.jsp</result>
</action>
<action name="addsafra" class="br.com.sementesfroes.actions.fazenda.AddSafra">
<result name="error">addsafra.jsp</result>
<result name="input">addsafra.jsp</result>
<result name="success" type="redirect">addsafra-success.jsp</result>
</action>
AddSafra-validation.xml
!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="safra.anoPlantio">
<field-validator type="requiredstring">
<message>O ano de plantio da safra deve ser informado.</message>
</field-validator>
</field>
<field name="safra.anoVenda">
<field-validator type="requiredstring">
<message>O ano de venda da safra deve ser informado.</message>
</field-validator>
</field>
</validators>
addsafra.jsp
<body>
<table width="100%" >
<tr>
<td width="25%" height="323" valign="top" >
<table class="form" width="250">
<tr onmouseover="rowHover(this)" href="viewfazenda.action?codFazenda=<ww:property value="fazenda.codFazenda" />">
<th><a href="viewfazenda.action?codFazenda=<ww:property value="fazenda.codFazenda" />"><ww:property value="fazenda.codFazenda" /></a> - <ww:property value="fazenda.nomeFazenda" /></th>
</tr>
<tr>
<td><b>Logradouro: </b><ww:property value="fazenda.endereco.logradouro" /><br>
<b>Bairro: </b><ww:property value="fazenda.endereco.bairro" /><br>
<b>Cidade: </b><ww:property value="fazenda.endereco.cidade" /><br>
<b>Telefone: </b>( <ww:property value="fazenda.telefone.codArea" /> ) <ww:property value="fazenda.telefone.numero" /><br>
</td>
</tr>
</table>
</td>
<td width="50%" valign="top" align="left">
<table align="center" class="form">
<form name="AddSafra" action="addsafra.action">
<tr><td class="cabecalho">Detalhes da Safra</td></tr>
<input type="hidden" name="codFazenda" value="<ww:property value="fazenda.codFazenda" />" /> <-------- passa a chave da fazenda para o form ------------>
<ww:textfield label="'Ano de Plantio'" name="'safra.anoPlantio'" />
<ww:textfield label="'Ano de Venda'" name="'safra.anoVenda'" />
<ww:select label="'Cultura'" name="'safra.cultura'" list="{'Selecionar','Aveia','Milho','Soja','Trigo'}" />
<tr><td colspan="2"><hr/><td></tr>
<ww:select label="'Status'" name="'safra.status'" list="{'Selecionar', 'Ativa', 'Inativa'}" />
<tr align="center">
<td colspan="2" >
<input type="submit" name="btnIncluir" value="Incluir">
<input type="reset" name="btnLimpar" value="Limpar">
</td>
</tr>
</form>
</table>
</td>
<td width="25%" valign="top"></td>
</tr>
</table>
</body>
alguma solução? implementar preparable? alguem ja passou por isso?
Obrigado,
Flavio Oliva
