SAStrutsで二重サブミット防止

Teedaのダブルサブミットを調べついでにSAStrutsも。
SAStrutsの場合Tokenでチェックするみたいですねぇ。
そりゃそうか、Strutsだもんね。
チュートリアルのTokenActionをまるぱくり。

@Resource
protected HttpServletRequest request;

@Execute(validator = false)
public String index() {
TokenProcessor.getInstance().saveToken(request);
return "index.jsp";
}

@Execute(validator = false, validate = "validate", input = "index.jsp")
public String result() {
return "result.jsp";
}

public ActionMessages validate() {
ActionMessages errors = new ActionMessages();
if (!TokenProcessor.getInstance().isTokenValid(request, true)) {
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"errors.invalid", "Token"));
}

return errors;
}



こんな感じの処理ってアノテーション + インターセプター
でやりたがる人がいるけど、アノテーション + インターセプター
が便利なのは分かるけど、ちょっとやり過ぎな感じがして、個人的にはあんまり好きじゃないですねぇ。
どっちでもいーですけどね。

0 コメント: