Velocity.properties配置示例

[/code]使固定后缀名的所有页面都被velocity渲染
[code="java"]
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>
org.apache.velocity.properties
</param-name>
<param-value>
/WEB-INF/classes/velocity.properties
</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>


其中velocity.properties(注意classloader和encoding)


resource.loader = file
file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
file.resource.loader.path = ./WEB-INF/templates
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 2
input.encoding=UTF-8
output.encoding=UTF-8

runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem
runtime.log.logsystem.log4j.category = velocity_log
runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
runtime.log.debug.stacktrace = false
runtime.log.invalid.reference = false



可以在tools.xml定义变量、velocity提供的类、以及自己定义的类。下面分别举例

<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
<data>
<key>name</key>
<value>severus</value>
</data>
<tool>
<key>myTool</key>
<class>net.xxx.velocity.tools.MyTool</class>
</tool>
<tool>
<key>date</key>
<scope>request</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
<parameter name="format" value="yyyy-MM-dd hh:mm:mm"/>
</tool>
</toolbox>


其中MyTool如下


public class MyTool {
public String getMessage() {
return "message";
}

public String sayHello(String s){
return "say hello by macro " + s;
}
}



由于html被定义为velocity,于是html可以这样用

<html>
<body >
Hello, $name <br>
$myTool.message <br>
$date.date<br>
</body>
</html>



解析结果为

Hello, severus
message
Sun Jun 07 04:09:09 CST 2009



使用macro自定义操作函数。

可以用macro.vm集中定义。

tools.xml集中加引用,macro.vm中集中加函数。



在velocity.properties中加一句


velocimacro.library = WEB-INF/macro.vm



然后macro.vm

#macro(sayHello $name)
$myTool.sayHello($name)
#end



于是可以在html中这样用

#sayHello("severus")




say hello by macro severus

D、设置模板文件存放路径的配置为:`spring.velocity.resource-loader-path`。在Spring Boot中集成Velocity模板引擎时,需要进行相关配置以便正确地加载和渲染模板文件。常见的配置方式有两种: 1. 在`application.properties`或`application.yml`配置文件中定义Velocity的相关属性,如模板文件的位置、缓存的开关等。示例: ``` spring.velocity.resource-loader-path=classpath:templates/ spring.velocity.cache=false spring.velocity.charset=UTF-8 spring.velocity.suffix=.vm ``` 2. 使用Java代码配置Velocity模板引擎的相关属性。示例: ```java @Configuration public class VelocityConfig { @Bean public VelocityConfigurer velocityConfigurer() { VelocityConfigurer configurer = new VelocityConfigurer(); configurer.setResourceLoaderPath("classpath:templates/"); configurer.setVelocityProperties(velocityProperties()); return configurer; } @Bean public Properties velocityProperties() { Properties properties = new Properties(); properties.setProperty("input.encoding", "UTF-8"); properties.setProperty("output.encoding", "UTF-8"); properties.setProperty("directive.set.null.allowed", "true"); properties.setProperty("resource.manager.defaultcache.size", "100"); return properties; } @Bean public ViewResolver velocityViewResolver() { VelocityViewResolver resolver = new VelocityViewResolver(); resolver.setSuffix(".vm"); resolver.setCache(false); resolver.setContentType("text/html;charset=UTF-8"); resolver.setExposeSpringMacroHelpers(true); resolver.setExposeRequestAttributes(true); resolver.setExposeSessionAttributes(true); return resolver; } } ``` 其中,`spring.velocity.resource-loader-path`表示模板文件的路径,`spring.velocity.cache`表示是否开启缓存,`spring.velocity.charset`表示字符编码,`spring.velocity.suffix`表示模板文件的后缀名。因此,选项D是正确的。选项A和B的属性名称不正确;选项C的属性名称正确,但是它是用于设置模板文件的后缀名,而不是用于开启缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值