webwork解决重复提交的问题
yadg 2009-03-04 11:19:40 用webwork的TokenSessionStoreInterceptor时,必须新增页面和显示的页面等的action分开来,因为新增的时,action是没有令牌的,这时就不应该校验token
后来这样解决
public class MyTokenSessionStoreInterceptor extends TokenSessionStoreInterceptor {
private static boolean token = false;
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
token = false;
Map parameters = ActionContext.getContext().getParameters();
if(parameters.containsKey("webwork.token.name"))
{
token = true;
}
log.info("has token is============"+token);
if(token)
{
Map session = ActionContext.getContext().getSession();
synchronized (session)
{
if (!TokenHelper.validToken())
{
log.info("无效的token:"+handleInvalidToken(invocation));
//return "invaid.token";这样都不好使
return handleInvalidToken(invocation);
}
}
}
return handleValidToken(invocation);
}
}
现在的问题是 我无论怎么样,到最后handleInvalidToken都返回的success,我甚至直接返回 return "invaid.token";这样都不好使
请高手们帮我分析下,怎么样才能返回 invaid.token然后转到错误页面呢