0

Velocity と VelocityViewServlet で Apache Tomcat を使用しています。ViewContext を参照してカスタム ツールを作成しました。それはすべてうまくいきます。

問題は、テンプレートを見つけてロードし、指定されたパラメーターで処理するための最良の方法は何ですか?

経由で取得したファイルへの絶対パスが既にあります

((ViewContext)context).getRequest().getSession().getServletContext().getRealPath("/")
  • VelocityEngine をインスタンス化する必要がありますか? Velocity (VelocityViewServlet) によって維持されるグローバルはないと思います。
  • どの Velocity ローダーを (どのように) 使用するのが最適ですか?
4

1 に答える 1

0

ここでいくつかのポイント:

  • VelocityViewServlet は、VelocityEngine 自体をインスタンス化します。グローバルではなく、ServletContext ごとに 1 つのエンジンです。

  • VelocityViewSerlet は、デフォルトのローダー (WebappLoader) を使用してリクエスト URI に対応するテンプレートを見つけます。そのため、自分で行う必要もありません。

  • テンプレートが評価される Velocity コンテキストには、すべての標準ツール (ツール 2.0 用) が既に取り込まれています。その中には、HTTP パラメーターを検査できる $params があります。

  • 「ViewContext を参照するカスタム ツール」がわかりません。ViewContext を使用する代わりに、ここにリストされているプロパティの中で必要なすべての適切なセッターをカスタム ツールに追加する必要があります (たとえば、リクエストにアクセスする必要がある場合)。 、次に「public setRequest(HttpServletRequest request)」メソッドを宣言します)。ボトムアップの観点から、ツールは、ツール構成ファイルで選択したキーを介してのみ到達可能でなければならず、Velocity を認識してはならないことに注意してください。

  • 1.x よりも成熟したライブラリである VelocityTools 2.0 を使用することをお勧めします。

于 2012-09-13T13:22:08.757 に答える