Validacao no Struts2

11 respostas
idev4web

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?

11 Respostas

edilson_x

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:

renatocustodio

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

edilson_x

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.

fnandos

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

Sorriso

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>
Sorriso

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

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.

Sorriso

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…

Sorriso

Correto!!!

idev4web

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.

saviod2

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.

Valeuuu!!!

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

Criado 14 de maio de 2008
Ultima resposta 6 de ago. de 2008
Respostas 11
Participantes 7