1

Springを使用して、ビューで次のController属性を取得するにはどうすればよいですか?

  • コントローラ名
  • コントローラの@RequestMappingURI
  • アクションメソッド名
  • アクションメソッドの@RequestMappingURI

私が試した1つのアプローチは、HandlerInterceptorAdapterのサブクラスを作成し、postHandleをオーバーライドすることです。サブクラスを指定されたパスのリストのmvc:interceptorとして登録します。これは維持するのが面倒ですが、ResourceHandlerリクエストに対してインターセプターが呼び出されるのを回避する唯一の方法でした(これは望ましくありません)。私のpostHandleでは、2つの名前属性を簡単に追加できますが、URIは追加できません...

  1. HttpRequestオブジェクトから解析するには、すべてのControllerRequestMappingsに制約が必要です。つまり、常に/ Controller/Actionまたはequivスキームをマップする必要があります。かなり制限があります。
  2. ApplicationContextを作成し、それをrequestURIでクエリするのは時間がかかりすぎます。

HandlerInterceptorAdapterを削除し、代わりにすべてのコントローラーが拡張するBaseControllerを定義することを考えています。

これを行う前に質問したかったのですが、もっと良いアプローチはありますか?

4

1 に答える 1

0

なぜこれを行う必要があるのか​​については述べていません(他の人が別のアプローチを提案できるため、モチベーションを含めることが役立つ場合があります)。

しかし、Spring 3.1の機能は、大まかに「エンドポイントドキュメント」と呼ばれているので、あなたが求めていることを実行できると思います...詳細があまり説明されていないSpringドキュメントRequestMappingHandlerMappingを参照してください。したがって、このサンプルプロジェクトは最適な場所です。実際の動作を確認してください。

于 2012-08-14T00:41:15.480 に答える