【问题标题】:urlrewritefilter problem with velocity template rendering速度模板渲染的 urlrewritefilter 问题
【发布时间】:2010-11-26 23:44:22
【问题描述】:

所以在安装UrlRewriteFilter之后,我设置了一个规则和一个对应的velocity模板。当我进入测试页面时,速度脚本显示为原始代码而不是编译。

规则代码示例:

<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 完美配合。

【问题讨论】:

    标签: java velocity servlet-filters


    【解决方案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,将会很有帮助。

    【讨论】:

    • 非常感谢您的提示,我不想显示我的 web.xml 的内容,但我现在正在查看该 servlet 映射是否在其他地方处理
    • 又看了一遍,是web.xml中的映射问题,再次感谢帮助
    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 2017-01-22
    • 2021-01-01
    • 2015-09-01
    • 1970-01-01
    • 2012-10-17
    • 2016-07-21
    • 2020-02-28
    相关资源
    最近更新 更多