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).