Dave, you are right

> ...
>
> That's not much to go on.
>
> Dave

Here a small example.

FORM:
<title><s:property value="#title"/></title>
</head>
<body>
<h2><s:property value="#title"/></h2>
<s:actionerror />
<s:actionmessage />

<s:form method="post">
<s:if  test="acao == 'Inserir'">
<s:hidden name="tipoHistorico.codTipoHistorico" 
value="%{tipoHistorico.codTipoHistorico}" 
label="%{getText('label.tipoHistorico.codTipoHistorico')}" />
</s:if>
<s:else>
<s:hidden name="tipoHistorico.codTipoHistorico" 
value="%{tipoHistorico.codTipoHistorico}"/>
<s:textfield disabled="true" name="mostrar" 
value="%{tipoHistorico.codTipoHistorico}" 
label="%{getText('label.tipoHistorico.codTipoHistorico')}" size="20"/>          
  
</s:else>
<s:textfield disabled="desativar" name="tipoHistorico.tipoHistorico" 
value="%{tipoHistorico.tipoHistorico}" 
label="%{getText('label.tipoHistorico.tipoHistorico')}" size="50"/>    

<s:submit value="%{getText('button.label.cancel')}" 
name="redirect-action:tipoHistoricoLicitacaoDef"/>
<s:if test="acao == 'Inserir'">
<s:submit value="%{getText('button.label.submit')}" 
action="tipoHistoricoLicitacaoDefEdit"/>
</s:if>
<s:elseif  test="tipoHistorico!=null && acao == 'Editar'">
<s:submit value="%{getText('button.label.submit')}" 
action="tipoHistoricoLicitacaoDefEdit"/>
</s:elseif>
<s:elseif  test="tipoHistorico!=null && acao == 'Excluir'">
<s:submit value="%{getText('button.label.submit')}" 
action="tipoHistoricoLicitacaoDefEdit"/>
</s:elseif>
</s:form>

</body>
</html> 
ACTION:

private TipoHistorico tipoHistorico;

public String doCrud() throws Exception {        
if (getAcao().equalsIgnoreCase("Inserir")){
try {
tipoHistoricoFacade.salvar(tipoHistorico);
} catch (ApplicationException ex) {
session.put("MENSAGEM_ERRO_APLICACAO", ex.getMessage());
return "error";
}            
} else if (getAcao().equalsIgnoreCase("Editar")){
try {
tipoHistoricoFacade.alterar(tipoHistorico);
} catch (ApplicationException ex) {
session.put("MENSAGEM_ERRO_APLICACAO", ex.getMessage());
return "error";
}

}else if (getAcao().equalsIgnoreCase("Excluir")){
try {
tipoHistoricoFacade.excluir(tipoHistorico);
} catch (ApplicationException ex) {
session.put("MENSAGEM_ERRO_APLICACAO", ex.getMessage());
return "error";
}            
}        
return SUCCESS;
}
and all setters and getters

XML CONFIGURATION:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
<validators>

<field name="tipoHistorico.tipoHistorico">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="errors.required.tipoHistorico.tipoHistorico"/>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">30</param>
<param name="minLength">4</param>
<param name="trim">true</param>
<message>Descrição Tipo Historico deve ter entre 4 e 30 caracteres</message>
</field-validator>
</field>  
</validators>

The error occurs only if data is not in accordance with the rules of 
validation. 

Regards,

Jair

Reply via email to