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