使用 VelocityViewServlet 时放置 Velocity 属性的最佳做法是什么
What is the best practice to put Velocity properties when using VelocityViewServlet
我想在 Web 应用程序中使用 Velocity,以便将动态内容从数据库添加到 html 文件。我已经使用 VelocityViewServlet
成功配置了 Velocity。我的 web.xml 看起来像这样:
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
我想以这些方式加载一些内容:
#set( $pageId = "6655231")
$data.getContent($pageId)
我应该在哪里设置 属性 $data
?
我应该在扩展 VelocityViewServlet 的自己的 HttpServlet 实现中设置 属性 吗?
或者有其他方法吗?
使用 Velocity View Tools 时,应该有一个名为 WEB-INF/tools.xml
的 configuration file,它定义了对应于三个嵌套范围应用程序、会话和请求的三个工具箱。这些工具箱也可以包含静态数据。
例如,如果您的数据访问器对象正在使用 class org.mine.Catalog,您的 tools.xml
文件可能是:
<?xml version="1.0"?>
<tools>
<toolbox scope="application">
<tool key="date" class="org.apache.velocity.tools.generic.ComparisonDateTool" locale="en_US"/>
<tool key="data" class="org.mine.Catalog"/>
</toolbox>
<toolbox scope="session">
<property name="create-session" value="true" type="boolean"/>
<tool key="map" class="java.util.HashMap"/>
</toolbox>
<toolbox scope="request">
<tool key="custom" class="org.mine.CustomTool" randomProperty="whatever"/>
</toolbox>
<data type="string" key="deployment" value="prod"/>
</tools>
standard tools已经默认包含在工具箱中,所以您只需要声明自定义工具,或者具有自定义属性的标准工具。
要从数据库添加动态内容,您可以检查 Velosurf tool. You can also write your custom tool,这很简单:基本上您的工具是一个普通的旧 java 对象,带有一个空的构造函数,需要 getter 和 setter ,以及接收多个环境属性的 void configure(Map config)
方法。
我想在 Web 应用程序中使用 Velocity,以便将动态内容从数据库添加到 html 文件。我已经使用 VelocityViewServlet
成功配置了 Velocity。我的 web.xml 看起来像这样:
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
我想以这些方式加载一些内容:
#set( $pageId = "6655231")
$data.getContent($pageId)
我应该在哪里设置 属性 $data
?
我应该在扩展 VelocityViewServlet 的自己的 HttpServlet 实现中设置 属性 吗?
或者有其他方法吗?
使用 Velocity View Tools 时,应该有一个名为 WEB-INF/tools.xml
的 configuration file,它定义了对应于三个嵌套范围应用程序、会话和请求的三个工具箱。这些工具箱也可以包含静态数据。
例如,如果您的数据访问器对象正在使用 class org.mine.Catalog,您的 tools.xml
文件可能是:
<?xml version="1.0"?>
<tools>
<toolbox scope="application">
<tool key="date" class="org.apache.velocity.tools.generic.ComparisonDateTool" locale="en_US"/>
<tool key="data" class="org.mine.Catalog"/>
</toolbox>
<toolbox scope="session">
<property name="create-session" value="true" type="boolean"/>
<tool key="map" class="java.util.HashMap"/>
</toolbox>
<toolbox scope="request">
<tool key="custom" class="org.mine.CustomTool" randomProperty="whatever"/>
</toolbox>
<data type="string" key="deployment" value="prod"/>
</tools>
standard tools已经默认包含在工具箱中,所以您只需要声明自定义工具,或者具有自定义属性的标准工具。
要从数据库添加动态内容,您可以检查 Velosurf tool. You can also write your custom tool,这很简单:基本上您的工具是一个普通的旧 java 对象,带有一个空的构造函数,需要 getter 和 setter ,以及接收多个环境属性的 void configure(Map config)
方法。