私が取り組んでいるプロジェクトの一環として、Velocity から JSP に移行しています。既存の Velocity テンプレートのセットを JSP に変換する必要があります。なぜこれが決定されたのか(部分的には私のせいです)、どちらがより良く、この道から経営陣を思いとどまらせる最良の方法かを議論するのに何時間も費やすことができますが、彼らはこれを行うことに専念しているので、それは時間の無駄です.
だから、私が探しているのは、私を助けるためのパターン、ベストプラクティス、あなたが持っているものです。グローバル ライブラリ ファイルには、さまざまなテンプレートで使用される多数の Velocity マクロがあります。各マクロを JSP スクリプトレットに変換し、マクロを Java に変換することを考えています。次に、include ディレクティブまたは jsp:include を使用して、すべてのスクリプトレットを含むそのファイルを各 JSP に含めます。また、マクロへの各呼び出しをスクリプトレットに変換することも考えていました。これらのマクロには、Spring ModelAndView クラスで定義された Bean であるパラメーターがあります。
予備テストでは、このアプローチは機能しないことが示されているようです。JSP コンパイル エラーが発生しているようです。しかし、私は自分の側でエラーを見逃す可能性があります。
OC4J バージョン 10.1.3.4.0 でこの Web アプリケーションを実行しています。
これは、私が対処しなければならないことの簡単な例です。これは VM_global_library.vm ファイルにあります。
#macro( showObjectErrors $objectName)
#if ($request.errorSystem.hasErrors($objectName))
<table>
#foreach ($error in $request.errorSystem.getErrors($objectName))
<tr>
<td class="acError">$error</td>
</tr>
#end
</table>
#end
#end
そして、次のように他のファイルで呼び出されます。
#showObjectErrors( "logonForm" )
「リクエスト」オブジェクトは HttpServletRequest ではなく、アプリケーション クラスであることに注意してください。表示するには多すぎる、はるかに複雑な例があります。