Advertisement

05.09.2008 at 01:01PM PDT, ID: 23390686
[x]
Attachment Details

Handling double submission in Struts 2 with interceptor 'token-session'

Asked by hai_madhan in Jakarta Struts, Miscellaneous Web Development, Java Server Pages (JSP)

Tags: Apache Struts 2, struts 2, 2, Issue in using tag, Java - Struts 2, Unexpected Exception caught setting 'struts.token', Issue in using token-session

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/editBusiness.jsp</result>
                <result type="redirect">view.do</result>
        </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.interceptor.ParametersInterceptor setParameters ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token' on 'class com.paribas.wlist.action.BusinessAction: Error setting expression 'struts.token' with value '[Ljava.lang.String;@44304430'
com.opensymphony.xwork2.interceptor.ParametersInterceptor setParameters ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'struts.token.name' on 'class com.paribas.wlist.action.BusinessAction: Error setting expression 'struts.token.name' with value '[Ljava.lang.String;@43944394'

And then it throws a null pointer exception:

WebApp        E   [Servlet Error]-[<null>]: java.lang.NullPointerException at
com.ibm.ws.webcontainer.srt.SRTServletRequest$SRTServletRequestHelper.access$200(SRTServletRequest.java:2045)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletRequest.java:186)


I know I'm missing something, but couldn't figure out what it is. Could you please help me this issue.

Thanks,
MadhanStart Free Trial
 
 
[+][-]05.09.2008 at 06:01PM PDT, ID: 21537432

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Jakarta Struts, Miscellaneous Web Development, Java Server Pages (JSP)
Tags: Apache Struts 2, struts 2, 2, Issue in using <s:token> tag, Java - Struts 2, Unexpected Exception caught setting 'struts.token', Issue in using token-session
Sign Up Now!
Solution Provided By: sanjooz
Participating Experts: 1
Solution Grade: A
 
 
[+][-]08.21.2008 at 11:38AM PDT, ID: 22282848

Experts Exchange has a courteous staff of administrators who help members get the most out of the website by means of administrative comments like this one.

Start your 7-day free trial to view this Administrative Comment or ask the Experts your question.

 
[+][-]08.27.2008 at 09:19PM PDT, ID: 22331537

Experts Exchange has a courteous staff of administrators who help members get the most out of the website by means of administrative comments like this one.

Start your 7-day free trial to view this Administrative Comment or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628