Struts 2 TokenSessionStoreInterceptor国际化或自定义操作错误

时间:2016-03-03 21:08:08

标签: java struts2 struts2-interceptors

我有一个使用struts 2 TokenSessionStoreInterceptor的项目。我假设这个拦截器在它认为令牌无效的情况下会显示一个动作错误(它不仅仅是双重提交但令牌从不存在的情况)。我注意到父类TokenInterceptor有一个可以覆盖的资源密钥,以提供国际化或自定义错误消息。有没有办法让TokenSessionStoreInterceptor使用相同的资源键?

我最终使用我自己的类扩展了TokenSessionStoreInterceptor并且只覆盖了handleInvalidToken()方法,调用了super,如果super返回了无效的令牌结果,则添加了操作错误。比如我下面的内容:

public class CustomTokenSessionStoreInterceptor extends TokenSessionStoreInterceptor {

    @Override
    protected String handleInvalidToken(final ActionInvocation invocation) throws Exception {
        final String result = super.handleInvalidToken(invocation);

        if (INVALID_TOKEN_CODE.equals(result)) {
            final String errorMessage = this.getErrorMessage(invocation);
            Object action = invocation.getAction();

            if (action instanceof ValidationAware) {
                ((ValidationAware) action).addActionError(errorMessage);
            }
        }

        return result;
    }
}

我很惊讶默认情况下没有这样做,是否有内置的方法来提供此功能?

0 个答案:

没有答案