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