I was thinking it would be possible to use both. Either by adding a second type 
of binder to the configuration, so they both run, or potentially by subclassing 
the existing binder to overlay the functionality.


On Oct 5, 2010, at 2:36 PM, Poitras Christian wrote:

> The downside of using 2 binders is that it's difficult to mix both approach.
> 
> Still, it would seem bizarre to have both approach in the same program...
> 
> -----Message d'origine-----
> De : Evan Leonard [mailto:evan.leon...@gmail.com] 
> Envoyé : October-05-10 3:31 PM
> À : nikol...@brightminds.org; Stripes Users List
> Objet : Re: [Stripes-users] Associating Parameters to Specific Actions
> 
> 
> Certainly!  
> 
> I started doing a little prototyping with this today while waiting for 
> another build to finish. I'm trying the approach of having one annotation on 
> the method like this:
> 
> @ParamBinding({"aString", "aNumber"})  
> public Resolution myAction(String aString, int aNumber) { ... }
> 
> The question I'm currently thinking about is whether to add to the 
> implementation of DefaultActionBeanPropertyBinder or whether there should be 
> second type of binder, something like this:
> 
> public interface ActionHandlerParameterBinder extends ConfigurableComponent  {
>    ValidationErrors bind(final Method handler, ActionBean bean, 
> ActionBeanContext context, boolean validate);
> }
> 
> 
> Thoughts?
> 
> Evan
> 
> 
> On Oct 5, 2010, at 1:19 PM, Nikolaos Giannopoulos wrote:
> 
>> Evan / Christian / Remi et al.
>> 
>> This thread is very interesting and I am enjoying it... and hope it 
>> continues...
>> However, can we rename this thread to something more aligned to the 
>> discussion?
>> 
>> If no one minds I have taken the liberty to rename it to the above ;-)
>> 
>> Regards,
>> 
>> --Nikolaos
>> 
>> 
>> 
>> 
>> Evan Leonard wrote:
>>> Here's an interesting approach from the waffle framework. It uses 
>>> annotations, but lists all the parameter names in a single annotation.
>>> 
>>> @ActionMethod(parameters = {"firstNumber", "secondNumber"})  
>>> 
>>> Evan
>>> 
>>> 
>>> On Oct 5, 2010, at 6:48 AM, Poitras Christian wrote:
>>> 
>>> 
>>>> It's a problem that we faced in MyBatis when dealing with multiple 
>>>> parameters. We went with the annotation approach.
>>>> I guess there are many workarounds for that and Spring is probably using 
>>>> one. Debug seems like a good workaround.
>>>> 
>>>> Christian
>>>> 
>>>> -----Message d'origine-----
>>>> De : Freddy Daoud [mailto:xf2...@fastmail.fm] 
>>>> Envoyé : October-05-10 8:40 AM
>>>> À : Stripes Users List
>>>> Objet : Re: [Stripes-users] Stripes Development and its Future... (long)
>>>> 
>>>> Are you sure? I think that if you compile with debug info turned
>>>> on, and your request parameters are named param1 and param2,
>>>> they will be bound correctly without the need for the annotations.
>>>> 
>>>> Or is that what you meant by "you will need the source code"?
>>>> 
>>>> Cheers,
>>>> Freddy
>>>> 
>>>> On Tue, 5 Oct 2010 08:36:43 -0400, "Poitras Christian"
>>>> <christian.poit...@ircm.qc.ca> said:
>>>> 
>>>>> A problem with the Spring approach is that parameter names are not
>>>>> accessible by reflection.
>>>>> The consequence is that if you have method like
>>>>> public void substract(int param1, int param2)
>>>>> It will be difficult to pass the parameters in the right order. You will
>>>>> need either the source code to find the parameter names or an annotation
>>>>> like
>>>>> public void substract(@Param("param1") int param1, @Param("param2") int
>>>>> param2)
>>>>> 
>>>>> Stripes is not affected by that problem.
>>>>> 
>>>>> Christian
>>>>> 
>>>>> -----Message d'origine-----
>>>>> De : Evan Leonard [mailto:evan.leon...@gmail.com] 
>>>>> Envoyé : October-04-10 4:59 PM
>>>>> À : Stripes Users List
>>>>> Objet : Re: [Stripes-users] Stripes Development and its Future... (long)
>>>>> 
>>>>> +1.  Though it will take one of us being dissatisfied *enough* to
>>>>> implement this ourselves :-)
>>>>> 
>>>>> 
>>>>> On Oct 2, 2010, at 9:05 PM, Simon wrote:
>>>>> 
>>>>> 
>>>>>>> In other words, in Stripes you'd have
>>>>>>> 
>>>>>>> private User user;
>>>>>>> 
>>>>>>> /* getters and setters */
>>>>>>> 
>>>>>>> public Resolution save() {
>>>>>>> // do something with user
>>>>>>> }
>>>>>>> 
>>>>>>> In Spring MVC you'd have
>>>>>>> 
>>>>>>> public void save(User user) {
>>>>>>> // do something with user
>>>>>>> }
>>>>>>> 
>>>>>>> The "do something"s in both Stripes action beans and Spring controllers 
>>>>>>> are
>>>>>>> best left to injected helpers, daos, and so on, keeping the 
>>>>>>> action/controller
>>>>>>> classes simple.
>>>>>>> 
>>>>>>> So, in that respect, I'm not sure that using local variables leads to 
>>>>>>> more
>>>>>>> complex procedural code, if you keep things simple in controllers.
>>>>>>> 
>>>>>> The main drawback to the Stripes approach is that if you have multiple
>>>>>> handlers on a single action it becomes ambiguous which bean properties
>>>>>> are inputs to each action.  When they are arguments to the handler
>>>>>> method it is super clear what applies where.   I wouldn't mind
>>>>>> sometimes if Stripes supported either approach - why not just look for
>>>>>> any method that returns Resolution and then if there are parameters,
>>>>>> try to bind them, if you can?   (yes, you probably need annotations to
>>>>>> tell you the name to bind on, but I can live with that)
>>>>>> 
>>>>>> Cheers,
>>>>>> 
>>>>>> Simon
>>>>>> 
>>>>>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> Beautiful is writing same markup. Internet Explorer 9 supports
>> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
>> Spend less time writing and  rewriting code and more time creating great
>> experiences on the web. Be a part of the beta today.
>> http://p.sf.net/sfu/beautyoftheweb
>> _______________________________________________
>> Stripes-users mailing list
>> Stripes-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/stripes-users
> 
> 
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Stripes-users mailing list
> Stripes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/stripes-users
> 
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Stripes-users mailing list
> Stripes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/stripes-users


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Stripes-users mailing list
Stripes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to