Search code examples
javastripes

Stripes ActionBean event always resolve to default event


I am using cleanurls formatted like /View/{arg1}/{arg2}/{$event}.

ActionBeanView has multiple events. However irrespective of which event I invoke from browser, this always gets resolved to the default event.

Any ideas what am I doing wrong (fairly new to Stripes).

Here is the error log:

11:24:18,497 DEBUG UrlBindingFactory:145 - Matched /View/myarg1/myarg2/ADD.action to [/View/{id}/{asof}/{$event}]

11:24:18,497 DEBUG ExecutionContext:150 - Transitioning to lifecycle stage Reque
stInit

11:24:18,497 DEBUG ExecutionContext:150 - Transitioning to lifecycle stage Actio
nBeanResolution

11:24:18,497 DEBUG UrlBindingFactory:145 - Matched /View/myarg1/myarg2/ADD.action to [/View/{id}/{asof}/{$event}]

11:24:18,497 DEBUG UrlBindingFactory:145 - Matched /View/myarg1/myarg2/ADD.action to [/View/{id}/{asof}/{$event}]

11:24:18,497 DEBUG ExecutionContext:150 - Transitioning to lifecycle stage Handl
erResolution

11:24:18,497 DEBUG UrlBindingFactory:145 - Matched /View/myarg1/myarg2/ADD.action to [/View/{id}/{asof}/{$event}]

11:24:18,497 DEBUG DispatcherHelper:184 - Resolved event: myDefaultEvent; will invoke:
 ViewActionBean.myDefaultEvent()

11:24:18,497 DEBUG ExecutionContext:150 - Transitioning to lifecycle stage Bindi
ngAndValidation

11:24:18,497 DEBUG DefaultActionBeanPropertyBinder:453 - Running required field
validation on bean class www.ViewActionBean

11:24:18,497 DEBUG DefaultActionBeanPropertyBinder:779 - Converting 1 value(s) u
sing converter net.sourceforge.stripes.validation.StringTypeConverter

11:24:18,513 DEBUG DefaultActionBeanPropertyBinder:779 - Converting 1 value(s) u
sing converter net.sourceforge.stripes.validation.StringTypeConverter

11:24:18,513 DEBUG DefaultActionBeanPropertyBinder:282 - Could not bind property
 with name [ADD.action] to bean of type: ViewActionBean : Bean class www.View
ActionBean does not contain a property called 'ADD'. As a result the followin
g expression could not be evaluated: ADD.action
----

Solution

  • When you are trying to match an URL like: /View/myarg1/myarg2/ADD.action with an UrlBinding /View/{arg1}/{arg2}/{$event} then I would expect Stripes to resolve this to the event named: "ADD.action".

    As you did not provide any source code of the Action Bean, I suspect that you didn't annotated the event handler with an HandlesEvent like this:

    @HandlesEvent("ADD.action")
    public Resolution add() {
       ... do handle add ...
    }