公司用了许久的struts2+hibernate,前两年时间SpringMvic+Shiro也有做过,大多都是基于JSP实现的界面展示层,最近一段使用使用SpringBoot+JPA采用的是thymeleaf,当然这都是工具,实现功能的一种手段而已。
最近新项目,接触并尝试了一点新的东西Vue+Velocity,有没有混搭的感觉,其实也是为了以后前后端分离项目做铺垫,具体见前两篇文章。
##配置 项目进行中,觉得还是有必要记录一下,省的被忘却。
项目其他相关的不再描述,这里只引入velocity
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version> </dependency>
spring-mvc.xml部分配置,其实springMvc4貌似已经放弃了支持velocity,相关API已经过时,但是并不影响使用。
<!-- Velocity视图解析器 默认视图 --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="contentType" value="text/html;charset=UTF-8" /> <!-- 这里说明一下 系统会自动匹配路径下的html页面 不需要经过controller 前台使用 vue渲染数据 --> <property name="viewNames" value="*.html" /> <property name="toolboxConfigLocation" value="/WEB-INF/tools.xml" /> <property name="dateToolAttribute" value="date" /><!--日期函数名称--> <property name="numberToolAttribute" value="number" /><!--数字函数名称--> <property name="requestContextAttribute" value="rc" /><!-- 获取系统路径 --> </bean> <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath" value="/WEB-INF/view" /> <property name="velocityProperties"> <props> <prop key="input.encoding">UTF-8</prop> <prop key="output.encoding">UTF-8</prop> <prop key="contentType">text/html;charset=UTF-8</prop> </props> </property> </bean>
配置tools.xml以及相关自定义标签
<?xml version="1.0" encoding="UTF-8" ?> <toolbox> <!-- 自定义标签 --> <tool> <key>shiro</key> <class>com.itstyle.shiro.security.VelocityShiro</class> <scope>application</scope> </tool> <!-- 原生标签 DateTool: 对Date操作:格式化、比较等 ListTool:透明地处理array和list MathTool:数学运算 NumberTool:对数字格式化和convert SortTool:对collections array iterator进行排序 --> <tool> <key>date</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.DateTool</class> </tool> <tool> <key>math</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.MathTool</class> </tool> <tool> <key>number</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.NumberTool</class> </tool> <tool> <key>sort</key> <scope>application</scope> <class>org.apache.velocity.tools.generic.SortTool</class> </tool> </toolbox>
自定义标签:
/** * Shiro权限标签(Velocity版) * 创建者 小柒2012 * 创建时间 2017年11月20日 */ public class VelocityShiro { /** * 是否拥有该权限 * @param permission 权限标识 * @return true:是 false:否 */ public boolean hasPermission(String permission) { Subject subject = SecurityUtils.getSubject(); return subject != null && subject.isPermitted(permission); } }
标签使用方法:
##页面中 $shiro.hasPermission('sys: area :list') ##JS中(注意一定要加引号) var flag = '$shiro.hasPermission('sys: area :list')'
作者:小柒
出处: https://blog.52itstyle.com
分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。