Validation - Struts2

4 respostas
spaethinho

Olá Pessoal,

Estou fazendo alguns testes com Struts2 e ainda não consegui fazer com que ocorram validações no meu formulário, eu sinto que tem coisa faltando. O que fiz basicamente para meu teste foi:

  1. Criar um arquivo com o nome da action seguida pela string “-validation.xml”, desta forma ficou Teste-validation.xml que tem o conteúdo:



    You must enter a value for bar.


  2. Dentro da action Teste coloquei também a linha:

  3. O formulário é apresentado na página como segue:
    <s:if test=“hasErrors()”>

</s:if>

<s:form method=“POST” validate=“true” action=“Teste” name=“Teste”>

<s:textfield label=“Name” name=“name” required=“true” />

<s:textfield label=“Age” name=“age” />

<s:textfield label=“Favorite color” name=“answer” />

<s:datetimepicker label=“Date” name=“date” />

<s:submit />

</s:form>

Mas nada ocorre conforme o esperado (que seria a apresentação da mensagem de erro solicitando que um nome seja informado).

Alguem saberia me dizer o que estou fazendo errado? Ou teria um exemplo simples de validations com struts2?

[]'s
Francisco

4 Respostas

filipeandrep

vc poderia enviar seu arquivo struts.xml?

spaethinho

Conforme solicitado:

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />

<package name="projVal" namespace="/projVal" extends="struts-default">

    <action name="Teste" class="projVal.Teste">
        <interceptor-ref name="validationWorkflowStack"></interceptor-ref>
        <result name="success">/formulario.jsp</result>
    </action>

</package>
filipeandrep

vc deve ter um result do tipo input para que o struts possa voltar ao formulário e mostrar os erros. Seu código irá ficar mais ou menos assim:

<action name="Teste" class="projVal.Teste">
<interceptor-ref name="validationWorkflowStack"></interceptor-ref>
<result name="success">/formulario.jsp</result>
<result name="input">/formulario.jsp</result>
spaethinho
Mesmo assim ele não funciona, eu percebo que não acontece a validação. O código do meu ActionSupport está somente:

public String execute() throws Exception {

validate();

return SUCCESS;

}

Esperando que a validação seja feita utilizando o Teste-validation.xml

Até ai estou certo? Existe algum outro lugar a ser configurado para fornecer suporte para validação?

Francisco

Criado 23 de maio de 2007
Ultima resposta 23 de mai. de 2007
Respostas 4
Participantes 2