β

SpringMvc+Velocity的一些配置总结

Harries Blog™ 49 阅读

前言

公司用了许久的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')'
作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:SpringMvc+Velocity的一些配置总结, 感谢原作者分享。

发表评论