2010-07-20 3 views
0

저는 struts2.1.8을 사용하고 있습니다. 여기에 이중 제출을 처리하고 싶습니다. truts2는 TokenInterceptor를 제공합니다. 따라서 두 번 제출하면 결과 이름으로 "invalid.token"을 반환합니다. 하지만 두 번 제출 한 페이지와 동일한 페이지를 표시하고 싶습니다.struts2 double submit problem

답변

2

당신이 원하기 때문에 에서 이중 제출 한 동일한 페이지를 표시하려면 이중 제출을 막으려는 <action> 정의 각각에 invalid.token 결과를 작성해야합니다.

<action name="some-action" class="foo.Bar"> 
    <interceptor-ref name="token"/> 
    <result name="success">/WEB-INF/some/action/success.jsp</result> 
    <result name="invalid.token">/WEB-INF/some/action/input.jsp</result> 
</action> 

The docs 더 많은 정보를 제공하고 Token Session Interceptor을 살펴볼 수도 있습니다.

1

을 바탕으로 작성한 TokenSessionInterceptor을 확인하십시오. 워드 프로세서에서 :

일반 토큰 인터셉터는 달리

, 이 인터셉터는 을 시도합니다 제공하는 장애를 통해 동일한 세션을 사용하여 여러 요청 이벤트에 지능. 즉, 는 원래 유효한 활동 호출이 표시 한 것 같은 응답을 표시하려고합니다 invalid.token 코드를 반환하는 대신 다음 을 처음 요청이 완료 될 때까지 후속 요청을 차단하고, 것입니다 여러 요청이 제출되지 않은 경우