Validacao no Struts2

No struts2 como fazer para aplicar validacao em um metodo especifico da action
alguem tem um exemplo detalhado de como fazer isto?
Como deve chamar meu arquivo -validation.xml?

Basta ter o o xml com o mesmo nome da Action mais “-validation.xml”, o arquivo xml deve ser criado no mesmo diretorio da Action.

A chamada é automatica, não é preciso definir.

segue exemplo fácil

http://struts.apache.org/2.x/docs/basic-validation.html

:arrow: Vc tambem pode usar annotations, é uma forma mais rápida e não precisa criar os arquivos xml :idea:

edilson_x, dessa forma ele não vai validar apenas para um método especifico como o cara lá em cima perguntou…

renatocustodio vc tem razão, preciso confirmar como se faz isso configurando xml’s, com annotation vc coloca a anotação @Validation no método
que vc quer que ocorra a validação.

Para validar em um JSP em um botao por exemplo, coloque na property “action” do botão o nome do seu arquivo -validation.xml, mas não sei se é isso que vc quer, para fazer em um metodo específico coloque nomeDaAction_metodo_validation.xml

no validation.xml

<form-validation>

    <formset>

        <form name="nomeDoFormulario">
            <field property="nomeDoCampoaValidar"
                depends="required">
                    <arg position="0" bundle="nomeDoBundle" key="chaveDoBundle"/>
            </field>
        </form>

    </formset>

</form-validation>

arg position quer dizer se for nulo…=“0”

Apenas acrescentando o que fnandos disse, o correto seria NomeDaAction-metodo-validation.xml com traço de menos.

E caso queira que algum método não tenha validação basta acrescentar a Annotation @SkipValidation.

struts config…

<action path="/caminho/registrar.do" type="br.com.caminho.CaminhoAction" name="nomeDoFormulario" parameter="default=registrar" input="/caminho/Listar.do" scope="request" validate="true"> <forward name="samePage" path="/caminho/registrar.do> <forward name="success" path="msgLayout"/> <forward name="delete_success" path="msgLayout"/> <forward name="update_success" path="msgLayout"/> <forward name="fail" path="msgLayout"/> <forward name="errors" path="msgLayout"/> </action>

action path = caminho da sua página
type = caminho da action
name="seu formBean’
parameter=parametro do seu action
input = sempre que há validações deve ter…
validate = se está pagina terra validação ou não…
os forwards espero que voce saiba!!!mas se naum saber dá um toque…

Correto!!!

Obrigado a todos pela ajuda.

Tentei colocar
NomeDaAction-nomeMetodo-validation.xml
NomeDaAction_nomeMetodo_validation.xml
NomeDaAction_nomeMetodo-validation.xml

nenhum desse nome funcionou, eu acho que o motivo foi que eu tenho fazer outras configuracoes
no arquivo que eu declaro as actions. Essa tecnica chama “wildcard mapping”

Consegui fazer funcionar da seguinte forma:
Deixando o nome do arquivo xml de validacao como NomeDaAction-validation.xml
e marcando os metodos onde eu nao queria validação com @SkipValidation
Funcionou beleza. Obrigado a todos pela ajuda.

[quote=rodrigo_corinthians]Apenas acrescentando o que fnandos disse, o correto seria NomeDaAction-metodo-validation.xml com traço de menos.

E caso queira que algum método não tenha validação basta acrescentar a Annotation @SkipValidation.[/quote]

Valeuuu!!!

Resolveu meus problemas (Além de evitar POG). :wink: