Hi,
I'm trying to use struts 2 token-session interceptor to handle the double submissions in my application.
Here is my action class signature:
public class BusinessAction extends BaseAction implements Preparable
while the BaseAction extends ActionSupport implements SessionAware.
Here is my action configuration:
<action name="save" class="BusinessAction" method="save">
<interceptor-ref name="user-login"/>
<interceptor-ref name="token-session"/>
<interceptor-ref name="basicStack"/>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="params" />
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
<result name="login">/logout.jsp</
result>
<result name="invalid.token">view.
do</result
>
<result name="input">/pages/editBu
siness.jsp
</result>
<result type="redirect">view.do</r
esult>
</action>
Please note that when the token interceptor captures the invalid token i want the 'view' action to be invoked which is the same action that is invoked after a proper submission. After a normal submission the application will go to the view page. When the user does a double submission I want the application to show the view page of the first submission and ignore the further submissions.
In my input jsp page I've included the <s:token/> under the <s:form> tag.
This set up has successfully avoided the issue of submitting agian after pressing the browser back button.
But, when I submit once and then again before the process gets completed, the application breaks throwing the following error:
com.opensymphony.xwork2.in
terceptor.
Parameters
Intercepto
r setParameters ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token' on 'class com.paribas.wlist.action.B
usinessAct
ion: Error setting expression 'struts.token' with value '[Ljava.lang.String;@44304
430'
com.opensymphony.xwork2.in
terceptor.
Parameters
Intercepto
r setParameters ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token.name' on 'class com.paribas.wlist.action.B
usinessAct
ion: Error setting expression 'struts.token.name' with value '[Ljava.lang.String;@43944
394'
And then it throws a null pointer exception:
WebApp E [Servlet Error]-[<null>]: java.lang.NullPointerExcep
tion at
com.ibm.ws.webcontainer.sr
t.SRTServl
etRequest$
SRTServlet
RequestHel
per.access
$200(SRTSe
rvletReque
st.java:20
45)
at com.ibm.ws.webcontainer.sr
t.SRTServl
etRequest.
getAttribu
te(SRTServ
letRequest
.java:186)
I know I'm missing something, but couldn't figure out what it is. Could you please help me this issue.
Thanks,
Madhan
Start Free Trial