problema UrlRewriteFilter com renderização modelo Velocity
-
05-07-2019 - |
Pergunta
Assim, depois de instalar UrlRewriteFilter , eu configurar uma regra e um modelo de velocidade correspondente. E quando eu ir para a página de teste, o script de velocidade é mostrada como código-primas em vez de ser compilado.
exemplo do código para a regra:
<rule>
<from>/test/([0-9]+)</from>
<to>/downloads/test.vm?Id=$1</to>
</rule>
exemplo do 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>
alguma idéia porque o modelo velocidade não tornam mesmo que a regra executada corretamente? Todas as outras páginas vm processar corretamente (quando acessado diretamente) ea reescrita funciona perfeitamente com jsp.
Solução
Isso acontece quando o test.vm é servido pelo servlet padrão para conteúdo estático.
Eu suspeito que você mudou o mapeamento para a velocidade de alguma forma. Se você estiver usando ferramentas de velocidade, você deve ter um mapeamento como este,
<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>
Outra possibilidade é que outro filtro pode interferir com filtro UrlRewrite. Seria útil se você pode postar o seu web.xml.