Wait until somebody else confirms it, as I'm not 100% sure :)
musachy 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]
-- "Hey you! Would you help me to carry the stone?" Pink Floyd