大した修正ではないので、とても恐縮ですが、Thymeleaf に PullRequest したらマージしてもらったのでその話。
これがその PullRequest
https://github.com/thymeleaf/thymeleaf-spring/pull...
なにを修正したのか?
ThymeleafViewResolver が RedirectView を生成する際に、RedirectView に対して ApplicationContext をセットしてやる、というものです。
なぜに?
Spring の Controller クラスから redirect: によってある URL にリダイレクトさせるとき、レスポンスが出力される前をフックして リダイレクト先URL を書き換えたかったのです。
Thymeleaf と Spring のソースコードを読んでいくとなにやら RequestDataValueProcessor#processUrl() でできそうなことがわかった。
しかし、ThymeleafViewResolver は RedirectView に ApplicationContext をセットしていないために、RequestDataValueProcessor を Bean 登録してても、見つけられない状況で、結果、RequestDataValueProcessor#processUrl() が呼び出されなかったからです。
それで?
でなんだという話ではないのですが、PullRequest の存在でオープンソースへの貢献がより簡単になり、世界中の人とソースコードを通してやりとりするのはやっぱり楽しいですね。
今回マージしてくれた、Themeleaf の Lead Developer の ダニエルさん、ありがとうございました。
Thymeleaf の Contributors として掲載していただきました。なんかうれしいっすね!
http://www.thymeleaf.org/team.html