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

2 respostas
D

: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

2 Respostas

Umlauf

Faltou o parâmetro value nos campos.

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

[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:

Criado 20 de abril de 2005
Ultima resposta 20 de abr. de 2005
Respostas 2
Participantes 2