Done, thanks Antonios!

https://cwiki.apache.org/confluence/display/WW/RestfulActionMapper


Regards
-- 
Ɓukasz
+ 48 606 323 122 http://www.lenart.org.pl/

2012/12/10 Antonios Gkogkakis <gkogk...@tcd.ie>:
>> What would be the best way to share an example? Send it here on the list?
>>You can register an issue and add text and example there or send it here
>
>
> Since this is my first contribution I'll post it here :).  I based my
> example on
> https://cwiki.apache.org/confluence/display/WW/RestfulActionMapper so it
> makes sense for someone viewing the wiki
> Furthermore, I tested it struts 2.3.1.2 and I also have a similar working
> example in production.
>
> To use the Restful2ActionMapper in an existing struts application we have
> to change the strus.mapper.class constant
> and let it point to the Restful2ActionMapper
>  <constant
> name="struts.mapper.class"
> value="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper"
> />
> The problem with the above approach is that we may break existing actions
> because the Restful2ActionMapper tries to guess
> the method name using conventions that aren't applicable to normal action
> classes.
>
> To overcome the above problem, we have to use a different action mapper
> depending on the url we want to process.
> REST actions will be processed by the Restful2ActionMapper and non-REST
> actions by the DefaultActionMapper
>
> To achieve that we have to rely on nampespaces and the
> PrefixBasedActionMapper that can choose which action mapper to
> use for a particular url based on a prefix (the action namespace).
>
> To put everything together, we create a package for our rest actions
> <package name="rest" namespace="/rest" extends="struts-default">
>     ....interceptor config
>      <action name="movie/*" class="app.MovieAction">
>     <param name="id">{0}</param>
>         ....results
>      </action>
>     ....
> </package>
> All other actions remain in their existing packages and namespaces
>
> we use the PrefixBasedActionMapper telling it to use the
> Restful2ActionMapper for actions
> in the /rest namespace and the DefaultActionMapper for all other actions
>
> <constant
> name="struts.mapper.class"
> value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"
> />
> <constant name="struts.mapper.prefixMapping" value="/rest:restful2,:struts"
> />
>
> For the Restful2ActionMapper to work we also have to set
> <constant name="struts.enable.SlashesInActionNames" value="true" />
> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
>
> @Chad
> 1) I think you are looking at the issue of failing to guess the method
> using Rest conventions for non-REST actions
> but in the context of the ActionMapper used in the REST plugin
> I don't know if something similar can be applied to the
> RestFul2ActionMapper, I just documented how we used
> the Restful2ActionMapper
> 2) I've read your book, when I started working with struts2. Nice work
> indeed !
>
> Regards,
> Antonios
>
>
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to