所以在安装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完美配合。
答案 0 :(得分:1)
当test.vm由静态内容的默认servlet提供时,会发生这种情况。
我怀疑你以某种方式改变了速度的映射。如果您使用的是Velocity Tools,则应该有这样的映射,
<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,将会很有帮助。