slim3の画面遷移ではまってしまった。
いや、使い方に誤りがあっただけなんですが、、。今後も間違えてはまりそうだったらなにか対処しよう。
登場人物はコントローラ2つ
- IndexController
- InsertController
jspが1つ
- /user/index.jsp
IndexControllerは単に下記でforwardするだけ。
return forward("/user/index.jsp");
index.jspの登録ボタンでInsertControllerが登録処理をする。
登録処理ではValidatorsを使って入力チェックをしていた。
その際に、入力に失敗した場合にforwardをIndexコントローラにしてしまっていた。
× return forward("/user/index");
○ return forward("/user/index.jsp");
このミスでRequestLocator.get().getAttribute(ControllerConstants.ERRORS_KEY);が空っぽになった。
(Errorsプロパティを追加して頂くまではOKだったような・・。)
1時間以上これにはまってしまった。。。
そこで、こういう問題をおこさないようにControllerからControllerへのforwardはエラーになる仕組みでも作ろうかな。。
ControllerからControllerへのforwardしたい時もあるような気もするのでちょっと様子見。
そもそも作り方に過ちがあるようでしたら突っ込みをお願いします。