2009-09-09 20 views
0

UrlRewriteFilterをインストールした後、ルールと対応するベロシティテンプレートを設定します。テストページに行くと、ベロシティスクリプトはコンパイルされずに生のコードとして表示されます。urlrewritefilter速度テンプレートレンダリングの問題

<rule> 
    <from>/test/([0-9]+)</from> 
    <to>/downloads/test.vm?Id=$1</to> 
</rule> 

urlrewritefilter

<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    <init-param> 
     <param-name>logLevel</param-name> 
     <param-value>DEBUG</param-value> 
    </init-param> 
</filter> 

の例ルールが正しく実行されていても、速度テンプレートがレンダリングされないだろう、なぜ任意のアイデア:ルールのコードの

例?他のすべてのVMページは正しく表示され(直接アクセスされた場合)、jspで完全に動作します。

答えて

1

これは、test.vmが静的コンテンツのデフォルトサーブレットによって提供されている場合に発生します。

速度のマッピングを何とか変更したと思われます。あなたはベロシティツールを使用している場合は、このようなマッピングを持っている必要があり、

<servlet> 
    <servlet-name>velocity</servlet-name> 
    <servlet-class> 
    org.apache.velocity.tools.view.VelocityViewServlet 
    </servlet-class> 
</servlet> 

<!-- Map all *.vm files to Velocity --> 
<servlet-mapping> 
    <servlet-name>velocity</servlet-name> 
    <url-pattern>*.vm</url-pattern> 
</servlet-mapping> 

もう一つの可能​​性は、他のフィルタがUrlRewriteフィルタに干渉する可能性があるということです。 web.xmlを投稿することができれば役に立ちます。

+0

私はweb.xmlの内容を表示したくありませんが、サーブレットのマッピングが他の場所で処理されているかどうかを今見ています。 –

+0

これをもう一度見て、マッピングの問題でした。 web.xml、助けてくれてありがとう –

関連する問題