This seems to me like putting another bullet in the gun! I agree you should pick a strategy and go with it. Having said that, do you agree the default for WCM should be false?
Scott On 4/9/07, Ted Husted <[EMAIL PROTECTED]> wrote:
We consider Wildcard Methods and DMI to be distinct strategies, and I would suggest that an application use one or the other. But, Wildcards and DMI can co-exist if the Wildcard URIs don't use the ! character. HTH, Ted <http://www.husted.com/ted/blog/> On 4/9/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > After refactoring my app to use the S2 Dynamic Method Invocation as follows: > > <action name="course_*" method="{1}" class="course"> > <result name="input">/pages/course.jsp</result> > <result>/pages/course.jsp</result> > </action> > > I am discovering that both > http://localhost:8080/dsms/course_create.action AND > http://localhost:8080/dsms/course!create.action work the same way. Is this > a feature? This is the sort of voodoo that should probably be cast out! > > Scott > > > > On 4/6/07, Ted Husted <[EMAIL PROTECTED]> wrote: > > > > There's a feature embedded in WebWork that lets the "!" character > > invoke a method other than execute. In WebWork, it doesn't really have > > a name. During the S2 discussions, we coined the term "dynamic method > > invocation" to describe how WW/S2 use the ! notation. > > > > For Struts 2, we added a switch to disable Dynamic Method Invocation" > > for two reasons. First, it can cause security issues if POJO actions > > are used. Second, it overlaps with the Wildcard feature that we > > brought over from Struts 1 (and from Cocoon before that). > > > > S2 does support "dynamic method invocation", but there are problems > > with the implementation. Essentially, the code scans the action name > > for a "!", and finding one, tricks the framework into invoking the > > other method instead of execute. The other method is invoked, but it > > uses the same configuration as the execute method, including > > validations. The framework "believes" it is invoking the "Category" > > action with the execute method. > > > > The Wildcard feature is implemented differently. When a Wildcard > > action is invoked, the framework acts as if the matching action had > > been hardcoded. The framework "believes" it's executing > > "Category!create" and "knows" it is executing the "create" method. > > This permits us to add specific validations, localizations, and type > > converters, for a Wildcard action, just like a conventional action. > > > > If someone were to implement [WW-1522], then the "dynamic method > > invocation" approach could have its own validations too. Here, the > > notion is to generate carbon actions for qualifying methods. The > > invocation would no longer be dynamic, because there would be an > > actual action in the configuration, but any method could be invoked. > > > > * https://issues.apache.org/struts/browse/WW-1522 > > > > My first pass at implementing [WW-1522] didn't work out. Though, I'm > > wondering if whatever we do for the codebehind plugin might work here > > too. At this point, I will probably never get to it myself, but > > perhaps someone will pickup the baton. > > > > In my own applications, I tend to use the underscore ("_") as a > > Wildcard separator, to avoid confusion with the WebWork bang. In > > practice, these are the only two special characters that work without > > causing JavaScript issues. > > > > HTH, Ted > > <http://www.husted.com/ted/blog/> > > > > > > On 4/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > since '!' is already a special character which specifies the method name > > > automatically see struts.properties configuration file for more details > > > about how to enable/disable dynamic method invocation > > > > > > Can you explain this? I read all I could find on this topic and their > > was > > > discussion dating back to early XWorks changes, however I could not make > > > sense out of it. I do recall changing my struts.properties and it does > > seem > > > to be working as I hoped. What is meant by "already a special > > character?" > > > > > > Thanks, > > > Scott > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Scott > [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Scott [EMAIL PROTECTED]