2010-07-20 2 views
0

Я использую распорки2.1.8. Здесь я хочу обрабатывать двойное подчинение. truts2 предоставляет TokenInterceptor. Поэтому, если я отправил два раза, он возвращает имя «invalid.token» в качестве результата. Но я хочу отобразить ту же страницу, с которой я отправил дважды.struts2 double отправить задачу

ответ

1

Требуется ли двойная подчиненность в вашем приложении?

Если вы хотите, чтобы предотвратить двойной представить проблемы, лучше реализовать Перенаправление после Post шаблон, см следующие две ссылки для подробного объяснения:

http://www.theserverside.com/news/1365146/Redirect-After-Post

http://en.wikipedia.org/wiki/Post/Redirect/Get

2

Так как вы хотите для отображения той же страницы, на которую вы дважды отправили, вам необходимо создать результат invalid.token в каждом из определений <action>, которые вы пытаетесь предотвратить двойным представлением:

<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, который основывается на TokenInterceptor. Из документов:

В отличии от обычных маркеров перехватчика, перехватчик будет пытаться обеспечить интеллектуальное отказоустойчивость в случае множественных запросов с использованием же сессии. То есть, он будет блокировать последующие запросы до первого запроса не будет завершен, а затем вместо возвращения в invalid.token кода, он будет пытаться отображать один и тот же ответ, что оригинал, действительный вызов действия будет отобразило , если не было отправлено несколько запросов .

Смежные вопросы