本文概览:介绍velocity在spring boot常用功能。
前置
1 在Velocity中获取Session
在application.properties添加如下属性。
1 |
spring.velocity.expose-request-attributes = true |
这个配置作用就是将session的结果保存到modelMap中,所以在velocity中直接通过 $参数名字 就可以获取。比如session中有“userId”的属性,那么此时在vlocity直接通过$userId 或者 ${userName} 就可以获取到。
参考:https://stackoverflow.com/questions/38432368/get-session-attribute-in-velocity-template
如果出现“
servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Cannot expose session attribute ‘api’ because of an existing model object of the same name] with root cause
”
在application.properties添加如下属性
1 |
spring.velocity.allow-session-override = true |
2 在Velocity中获取HttpServlet的attribute
在application.properties
1 |
spring.velocity.expose-request-attributes = true |
这个配置作用就是将httpServerRequest的attribute的保存到modelMap中,所以在velocity中直接通过 $参数名字 就可以获取。比如session中有“userName”的属性,那么此时在vlocity直接通过$userName或者${userName}就可以获取到。
附 Velocity常用预发
1、定义变量
1 |
#set($name =“velocity”) |
2、使用变量
使用$name 来使用变量。
3、访问对象
访问object对象的id属性:${object.id }。
${person.name} 并不是直接访问 person 的 name 属性,而是访问 person 的 getName() 方法,所以${person.name} 和${person.getName()} 是一样的。
4、遍历List
1 2 3 |
#foreach($element in $list) #element #end |
5、判断
1 2 3 4 5 |
#if($condition) true #else false #end |
6、map
1 2 3 |
#foreach($key in $map.keySet()) $key : $map.get($key) #end |