私はどのコントローラを知っていて、それを生成するためにどのアクションが呼び出されたのかを知りたい。実際に、私はビューでこのような何かをしたい:Spring MVC:コントローラ+アクション名をビューに渡す最も良い方法は何ですか?
<script>
var controller = "${controllerName}";
var controllerAction = "${controllerAction}";
</script>
と、後で私はへのアクセスを許可するこの.jsファイルに...の.js、
<script src="/public/script.js"></script>
を含ま中両方の変数:
if(controller == "UserController" && controllerAction == "Edit")
{
// ...
}
else
{
// ...
}
私の質問:コントローラとアクション名を自動的にビューに渡すにはどうすればよいでしょうか?
私のコントローラは、抽象的な "BaseController"を拡張しているので、これらの変数をModelAttributeに追加する最も良い場所はそこにあります。私は具体的なコントローラに、これらの変数を追加するために何もしないように勧めます。しかし、親コントローラは、どのように子コンクリートコントローラの名前とアクションの名前を知ることができますか?
私はBaseControllerでスタックトレースチェックすることができますが、私は本当にこのソリューションのように...
あなたが提案するためのより良い解決策を持っていないのですか?
回答を解決策にフラグを付けます。ありがとう!たいていの場合、URLを解析すると、本当にトリックが行われます。また、インターセプタとSpring 3.1を使用して両方の変数を自動的に渡す方法も見つけました(私の「以下の解決策」を参照)。 – electrotype