It looks like the servleturlrenderer had a change in business logic, with the
introduction of ActionInvocation.getProxy()
Adding in a line like
final String method = urlComponent.getMethod() != null ?
urlComponent.getMethod() : ai.getProxy().getMethod();
And using the method name in the call to determineActionURL(..., method, ...)
Functionally works, but has a new side effect.
/context/ -> /context/!execute
/context/action -> /context/action!execute
In the past, if the method was not specified, it would still not be specified.
So my question is there a better (or more prefered way) to track if the method
was specified at runtime or was defaulted due to configuration?
Looking in DefaultActionProxy.prepare() it calls resolveMethod()
private void resolveMethod() {
// if the method is set to null, use the one from the configuration
// if the one from the configuration is also null, use "execute"
if (StringUtils.isEmpty(this.method)) {
this.method = config.getMethodName();
if (StringUtils.isEmpty(this.method)) {
this.method = "execute";
}
////// added ///////////////////////////////////////////////////
this.methodSpecified=false;
////////////////////////////////////////////////////////////////
}
}
ActionProxy.isMethodSpecified()
This would allow a line like:
final String method = urlComponent.getMethod() != null ||
!ai.getProxy().isMethodSpecified() ? urlComponent.getMethod() :
ai.getProxy().getMethod();
The alternative to modifying xwork would be to trap the before and after inside
of the StrutsActionProxy.prepare() and do a check to see if ai.getProxy()
instanceof StrutsActionProxy
Ex:
final String method = urlComponent.getMethod() != null || (ai.getProxy()
instanceof StrutsActionProxy &&
!(StrutsActionProxy(ai.getProxy())).isMethodSpecified() ?
urlComponent.getMethod() : ai.getProxy().getMethod();
Ug.
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- -
- Jason Pyeron PD Inc. http://www.pdinc.us -
- Principal Consultant 10 West 24th Street #100 -
- +1 (443) 269-1555 x333 Baltimore, Maryland 21218 -
- -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]