Apache 是",;申请书;EscapeTool中的保留字?
最近,我在spring框架中使用apache velocity作为视图模板,为了转义HTML实体,我引入了“org.apache.velocity.tools.generic.EscapeTool”,但是,我发现名为“$application”的变量现在无法工作,任何名为“$application”的变量都显示为空,例如“$!application.name” 当我删除velocity工具配置时,可以正确读取“$application”。所以有人知道“$application”是velocity escape工具中的保留字还是我在配置时出错了 工具箱配置:Apache 是",;申请书;EscapeTool中的保留字?,apache,spring,velocity,Apache,Spring,Velocity,最近,我在spring框架中使用apache velocity作为视图模板,为了转义HTML实体,我引入了“org.apache.velocity.tools.generic.EscapeTool”,但是,我发现名为“$application”的变量现在无法工作,任何名为“$application”的变量都显示为空,例如“$!application.name” 当我删除velocity工具配置时,可以正确读取“$application”。所以有人知道“$application”是velocity
<toolbox>
<tool>
<key>esc</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.EscapeTool</class>
</tool>
</toolbox>
电子稳定控制系统
应用
org.apache.velocity.tools.generic.EscapeTool
SpringBeans XML中的配置:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml" />
</bean>
在模板文件中:
<div class="description">
<h2>Application Name:$!application.name</h2>
</div>
应用程序名称:$!application.name
提前谢谢 EscapeTool不会在上下文中放置任何内容,因此它不会重写$application变量。要找出重写任何变量的内容,可以尝试
$application.class.name
当模板中使用$application时,VelocityTools会自动返回servletContext,但是(在Tools 2.0的情况下)您可以配置是喜欢用户设置变量(默认值)还是ServletAPI对象。我不记得是否可以在Tools1.4中配置它,但我相信您可以查找它
在任何情况下,在Tools 2.x中,它都不是保留的,但它也有一个默认值。由于它的作用与保留的相同,我猜您要么关闭了userOverwrite,要么正在使用工具1.4。谢谢,这是1.4的问题。当我将依赖项更改为2.0时,它运行良好。