-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello Márcio*,
*thanks for your quick answer. Yes, that will work, you're right.
Unfortunately is is not exactly what i would want. You are doing your
validation in the method that is called.
I would prefer the framework to call *validate()* before (!) my method
(in that case "save" ) is called.
This should happen when I subclass from ActionSupport and implement
validate(), but it only seems to work
when the method execute() is called.
I could call validate() from the method save in it's beginning (that's
in fact what I do now), but that not the intention
of the interfaces Validatable/ValidationAware. So I hope, anyone can
give me a hint as I like to write clean, readable
code and do not want to create "workarounds" all the time ;)
Anyway, thanks for the effort.
Volker
*
*Márcio Gurgel schrieb:
> Hi Volker,
>
> You can do it with struts xml validator:
>
> Include a xml into your action package like this:
>
> ActionName - alias from action - validation.xml
> Example:
> ActionName-save-validation.xml
>
> * Note that "save" is the name of action in your struts.xml
>
> Nothing better than a real example:
>
> struts.xml -------------------------------------------------------
> <action name="salvar" method="salvar"
> class="br.com.sgvdba.actions.usu.UsuAction">
> <result name="success" type="redirectAction">
> <param name="idUsu">${currentUsu.cd}</param>
> <param name="actionName">abrirDados</param>
> <param name="namespace">/usuario</param>
> </result>
> <result type="tiles" name="input">default.usu</result>
> </action>
>
> UsuAction (Action class) -----------------------------------------
> /**
> * Persiste determinado usuário no banco de dados
> * * Para inserir um usuário deve ser confirmada a não-existência
> * de outro registro com o mesmo nome de usuário.
> * @return
> */
> public String salvar(){
> //Verifica se a tela possui erros
> if (hasFieldErrors() || hasErrors()){
> return Action.INPUT;
> }
>
> try {
> if (!getUsuFacade().isSenhaValid(currentUsu.getSenha(),
> senhaConf)){
> addActionError("As senhas informadas devem ser iguais");
> return Action.INPUT;
> }
> else
> if (!getUsuFacade().isChvValid(currentUsu.getChv())){
> addActionError("Já existe um usuário com este nome,
> favor informar um nome diferente");
> return Action.INPUT;
> }
> else {
> NvlAcso nvlAcso =
> getNvlAcsoFacade().recuperaPorId(idNvlAcso);
> getUsuFacade().incluir(currentUsu, nvlAcso);
> setIdUsu(currentUsu.getCd());
> }
>
> } catch (Exception e) {
> addActionError(SgvdbaConstants.ERRO_DEFAULT + e.getMessage());
> return Action.INPUT;
> }
>
> return Action.SUCCESS;
> }
>
> UsuAction-salvar-validation.xml (VALIDATION)
> -------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0//EN"
> "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
> <validators>
>
> <field name="currentUsu.chv">
> <field-validator type="requiredstring">
> <message>Favor inserir um nome de usuário</message>
> </field-validator>
> </field>
>
> <field name="currentUsu.email">
> <field-validator type="requiredstring">
> <message>Favor inserir um e-mail</message>
> </field-validator>
> <field-validator type="email">
> <message>Favor informar um e-mail válido</message>
> </field-validator>
> </field>
>
> <field name="currentUsu.senha">
> <field-validator type="requiredstring">
> <message>Favor inserir uma senha</message>
> </field-validator>
> <field-validator type="stringlength">
> <param name="minLength">4</param>
> <param name="maxLength">12</param>
> <param name="trim">true</param>
> <message>A senha deve conter no mínimo ${minLength} e no
> máximo ${maxLength}</message>
> </field-validator>
> </field>
>
> </validators>
>
>
> Hope this can help you.
> Sorry by text in portuguese on my code, but I guess it's gona be easy to
> understand.
>
> []'s
>
> 2008/4/23, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>> Hello y'all,
>>
>> i have quite an interesting problem again.
>> In my struts.xml i have defined a method to call for my action
>> (method="save")
>>
>> Every time my action class is called, the method validate() is executed.
>> The same action class used with struts.xml-parameter method="save" is also
>> executed as expected, but validate is never called.
>> I thought, i could exclude methods from validation, but how do i include
>> one ?
>>
>> this
>> <interceptor-ref name="validation">
>> <param name="includeMethods">save</param>
>> </interceptor-ref>
>>
>> does not work.
>>
>> thanks in advance
>>
>> Volker
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFID3Dax4KjH6Tk4MMRAloBAJ92MhmLRMSDvtKDfE8KBbcH60dr/gCfbYbE
w7bSzJSLamxDA+LPjNNpU2k=
=sy2F
-----END PGP SIGNATURE-----