Spring MVC 3 のアノテーションスタイルで、複数の Submit ボタンがあるフォームに対応する

このようなフォームがあったとします。

<form action="/add/confirm" method="post">
  <p><input type="text" name="name" /></p>
  <p><input type="text" name="age" /></p>
  <p>
    <input type="submit" name="confirm" value="確認" />
    <input type="submit" name="back" value="戻る" />
  </p>
</form>


これに対応する Controller のアノテーションは以下になります。params = "back" の部分がキモになります。

    @RequestMapping(value = "/add/confirm", method = RequestMethod.POST)
    public String addConfirm(@ModelAttribute User user, BindingResult result, SessionStatus status) {
        return "confirm";
    }
    
    @RequestMapping(value = "/add/confirm", method = RequestMethod.POST, params = "back")
    public String backToList() {
        return "list";
    }


see also: