Problemas com o ActionContext do webwork. preciso de solulções

:smiley: ola povo :smiley:

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

[code]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;
}

}[/code]

XWORK.xml

[code]
/errors/notfound.jsp
addsafra.jsp

    <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>[/code]

AddSafra-validation.xml

[code]!DOCTYPE validators PUBLIC “-//OpenSymphony Group//XWork Validator 1.0//EN”
http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd”>



O ano de plantio da safra deve ser informado.

O ano de venda da safra deve ser informado. [/code]

addsafra.jsp

[code]

			<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>
[/code]

alguma solução? implementar preparable? alguem ja passou por isso?

Obrigado,

Flavio Oliva

Faltou o parâmetro value nos campos.

<ww:textfield label="'Ano de Plantio'" name="'safra.anoPlantio'" value="'safra.anoPlantio'" />

[quote=Umlauf]Faltou o parâmetro value nos campos.

<ww:textfield label="'Ano de Plantio'" name="'safra.anoPlantio'" value="'safra.anoPlantio'" />

nesse caso nao precisa… esses é o formulario. :smiley: