I could use it for security reasons, like populating an object model
directly, but making sure that nobody sets the "id" property for example. I
know I can do it using ParameterNameAware, but having an annotation would be
nicer.

musachy

On 2/27/07, Laurie Harper <[EMAIL PROTECTED]> wrote:

Doesn't look like it, though I'd mostly want to apply such an annotation
to properties I *don't* have, so I wouldn't get all those OGNL warnings
logged with huge stack traces! ;-)

Musachy Barroso wrote:
> Is there any @SkipX annotation to skip populating a property by the
> ParamsInterceptor?
>
> musachy
>
> On 2/27/07, Laurie Harper <[EMAIL PROTECTED]> wrote:
>>
>> Just to follow up on this for the archives, there is now an even easier
>> way: annotate methods for which no validation should fire with
>> @SkipValidation. I believe (?) that annotation is new with 2.0.6, or at
>> least it's a recent addition. Anyway, it works very well.
>>
>> L.
>>
>> Don Brown wrote:
>> > Nah, there is a better way.  Take a look at the struts-default.xml
>> > file and notice how the validation interceptor is configured to only
>> > skip validation on certain methods.  Create a new base package that
>> > contains a default interceptor stack which has the validation
>> > interceptor configured differently, say to skip "execute" as well.
>> > Then, use the "struts.codebehind.defaultPackage" setting to point the
>> > codebehind plugin at your new parent package.
>> >
>> > Don
>> >
>> > On 2/12/07, Laurie Harper <[EMAIL PROTECTED]> wrote:
>> >> Hmm, if that's true it'll mean I'm forced to split my user admin
>> action
>> >> into multiple actions (and same for every other master-detail view I
>> >> have) :-( Does the same limitation apply when using XML-based
>> validation?
>> >>
>> >> L.
>> >>
>> >> Musachy Barroso wrote:
>> >> > I think when you annotate a class with @Validations, "input" is
the
>> >> only
>> >> > method that will be called without invoking the validation first.
>> >> >
>> >> > musachy
>> >> >
>> >> > Laurie Harper wrote:
>> >> >> I'm trying to get validation working (using annotations) in a
>> Struts2
>> >> >> project and I can't seem to get it to quite cooperate :-) I'm
using
>> >> >> the Zero Configuration and Code Behind plugins, so this may be a
>> >> >> result of some unintended interaction between those and the
>> validation
>> >> >> framework.
>> >> >>
>> >> >> The use case is a master/detail view, where both are handled by
the
>> >> >> same action. The (default) master view (/admin/users.jsp) lists
all
>> >> >> the users and has an Add User link pointing to
>> >> >> /admin/users!add.action. The problem is, as soon as I add any
>> >> >> validation rules, the action is never executed and Struts loads
the
>> >> >> default /admin/users.jsp view, instead of /admin/users-edit.jsp.
>> >> >> Without validation rules specified (including if I have an empty
>> >> >> @Validations annotation), everything works as it should.
>> >> >>
>> >> >> I've tried using an @SkipValidation annotation as mentioned on
the
>> >> >> Validation page [1] in the documentation, but that annotation
>> doesn't
>> >> >> seem to exist anywhere in Struts2 or XWork...!
>> >> >>
>> >> >> Now, the magic: if I add an 'input' method to the action with
>> 'return
>> >> >> "edit";', and hit /admin/users!input.action (instead of
>> ...!add...),
>> >> >> it works fine again. It appears that the token 'input' is somehow
>> >> magic?
>> >> >>
>> >> >> A stripped down copy of my action follows [2]. How do I get
>> validation
>> >> >> to *only* be applied when calling the save() method?
>> >> >>
>> >> >> [1] http://struts.apache.org/2.x/docs/validation.html
>> >> >>
>> >> >> [2] action code:
>> >> >>
>> >> >> package ...admin;
>> >> >> @Results(
>> >> >>     @Result(value = "users", type =
>> ServletActionRedirectResult.class)
>> >> >> // XXX why doesn't this work?
>> >> >> )
>> >> >> @Validation
>> >> >> public class UsersAction extends ActionSupport {
>> >> >>     public String add() {
>> >> >>         System.out.println("ADD");
>> >> >>         user = userService.createUser();
>> >> >>         return "edit";
>> >> >>     }
>> >> >>
>> >> >>     public String execute() {
>> >> >>         System.out.println("EXECUTE");
>> >> >>         return "edit";
>> >> >>     }
>> >> >>
>> >> >>     public String input() {
>> >> >>         System.out.println("INPUT");
>> >> >>         return "edit";
>> >> >>     }
>> >> >>
>> >> >>     @Validations(
>> >> >>         requiredStrings = {
>> >> >>             @RequiredStringValidator(
>> >> >>                     fieldName = "user.login",
>> >> >>                     key = "user.login.required",
>> >> >>                     message = "user.login.required")},
>> >> >>         ...
>> >> >>     )
>> >> >>     public String save() {
>> >> >>         System.out.println("SAVE");
>> >> >>         ...
>> >> >>
>> >> >>         return SUCCESS;
>> >> >>     }
>> >> >> }
>> >> >>
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
"Hey you! Would you help me to carry the stone?" Pink Floyd

Reply via email to