What's wrong with annotations, and more importantly - How hot is your sister?!
(sorry, couldn't resist) -Wes On Mon, 2008-09-01 at 08:57 -0500, [EMAIL PROTECTED] wrote: > Thanks Jeromy -- > > I'd rather sleep with my sister than embed annotations in my code. This > notwithstanding, I understand your reluctance to add yet another permutation > to that lookup scheme. I poked around in the code back in 2.0 and nearly > got a nose bleed. I hope there are a ton of unit tests around that baby! > I'm getting the feeling that REST is not ready for prime time. I too > wondered why it was excluding edit, editNew. I'm sure there was a reason. > > Peace, > Scott > > On Mon, Sep 1, 2008 at 8:09 AM, Jeromy Evans < > [EMAIL PROTECTED]> wrote: > > > stanlick wrote: > > > >> Also, what is the naming convention for validation xml files using the > >> Code > >> Behind/REST plug-in? > >> > >> I've tried several combinations of naming, but none seem to work. > >> > >> > >> > > > > The short answer is: you can't. It doesn't work. > > Fortunately annotation validation works correctly in 2.1, so the approach > > I've used is: > > - the action carries validation annotations on the applicable methods; > > - the model's use XML validation > > as they can be used together and it's well suited to ModelDriven. > > > > The problem is that the DefaultValidatorFileParser in Xwork that reads the > > XML file has no way to specify which method it should be applied to. It > > applies to the entire class. > > With wildcards in 2.0 you could get around this because the action "alias" > > included the method name. > > > > It's the same reason using "method='update'" spefied in struts.xml never > > worked properly with XML validation. The parameter was ignored by the XML > > validator. This had always frustrated me. > > > > Fortunately somebody fixed the annotation interceptor so it can distinguish > > between the methods being executed. Unfortunately that fix > > (validateAnnotatedMethodOnly) is not enabled by the rest plugin by default. > > Further compounding the problem is that rest plugin has disabled validation > > for the edit, editNew and other relevant methods. (I'm not sure why...there > > must have been a reason for that). > > > > What I've done is replace the rest default stack with one that includes the > > validation interceptor with better configuration: > > > > <interceptor-ref name="validation"> > > <param name="excludeMethods">input,back,cancel,browse,index</param> > > <param name="validateAnnotatedMethodOnly">true</param> > > </interceptor-ref> > > <interceptor-ref name="restWorkflow"> > > <param name="excludeMethods">input,back,cancel,browse,index</param> > > </interceptor-ref> > > > > > > I've been tempted to delve in a fix this but so far I've stayed out of > > xwork. The rest plugin does the right thing setting up the ActionInvocation > > with the action name and method name; the XML validation config reader just > > needs to use the method name to select the file (eg. to load > > OrdersControler-<action>-<method>-validation.xml if it exists). But I feel > > it already searches for far too many combinations, so I've been reluctant to > > touch it. > > > > stanlinck also wrote: > > > > Would you share the interceptor stack to fold paramsPrepareParamsStack > >> capabilities into the restDefaultStack? > >> > > > > > > I haven't experimented with this much with the rest plugin as I try to > > avoid it . It's reasonable logical... > > > > The actionMappingParams interceptor is the one responsible for setting the > > id, so it needs to appear before the prepare interceptor. > > If you need other params, before prepare, you also need params before > > prepare. > > The actionMappingParams and params are then required after prepare again. > > > > ie. set the id, load the object, set the id and params > > > > It's different because the ActionMapper obtained the id from URI. > > If you use other variables in the namespace you also need this interceptor > > before prepare. > > > > Hope that helps, > > Jeromy Evans > > > > > > > > > > --------------------------------------------------------------------- > > 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]