`

SpringMVC Freemarker 自定义标签

 
阅读更多

1:实现 freemarker.template.TemplateMethodModelEx 接口对于 freemarker-2.3.20版本, 更早版本实现freemarker.template.TemplateMethodModel 接口

且加入Spring管理,代码如下:

package com.sqtoon.orderserv.web.commons.freemarker.tag;

import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Component;

import freemarker.template.TemplateMethodModelEx;
import freemarker.template.TemplateModelException;

@Component("dictItemTag")
public class DictItemTag implements TemplateMethodModelEx { // TemplateMethodModel

	@SuppressWarnings("rawtypes")
	@Override
	public Object exec(List arguments) throws TemplateModelException {
		StringBuilder ret = new StringBuilder("DictItemTag");
		if (CollectionUtils.isNotEmpty(arguments)) {
			for (Object obj : arguments) {
				ret.append("-").append(obj);
			}
		}
		return ret.toString();
	}

}

 

2: 配置Spring 中的org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer :

<!-- FreeMarker配置 -->
 	<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
		<property name="templateLoaderPath" value="/WEB-INF" />
		<property name="defaultEncoding" value="UTF-8" />
		<property name="freemarkerVariables">
			<map>
				<entry key="dictItemTag" value-ref="dictItemTag"/>
			</map>
		</property>
		<property name="freemarkerSettings">
			<props>
				<prop key="tag_syntax">auto_detect</prop>
				<prop key="template_update_delay">0</prop>
				<prop key="defaultEncoding">UTF-8</prop>
				<prop key="output_encoding">UTF-8</prop>  
				<prop key="url_escaping_charset">UTF-8</prop>
				<prop key="locale">zh_CN</prop>
				<prop key="boolean_format">true,false</prop>
				<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
				<prop key="date_format">yyyy-MM-dd</prop>
				<prop key="time_format">HH:mm:ss</prop>
				<prop key="number_format">0.######</prop>
				<prop key="whitespace_stripping">true</prop>
				<prop key="classic_compatible">true</prop>
				<!-- <prop key="auto_import">/ftl/spring.ftl as s</prop> 
				<prop key="template_exception_handler">ignore</prop> -->
			</props>
		</property>
	</bean>

 3:页面使用:

${dictItemTag('one!','two!!','three!!!','go!!!!')}

 

页面输出结果为:

DictItemTag-one!-two!!-three!!!-go!!!!

4:完毕!

分享到:
评论

相关推荐

    springMVC3.2+Hibernate4+freemarker

    springMVC3.2+Hibernate4+freemarker 代码框架采用springMVC3.2.4+hibernate4.2.8+freemarker2.3.16 功能方面只是一个简单的注册登录,前台使用freemarker渲染,使用了freemarker自定义标签。

    SpringMVC+freemarker

    springMVC+freemarker 简单的整合加自定义标签

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...

    基于SpringMVC的一个web框架

    工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...

    SpringMVC基础上的web框架

    工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    本人提供这个Shiro + SpringMvc + Mybatis + Redis 的Demo 本着学习的态度,如果有欠缺和不足的地方,给予指正,并且多多包涵。 “去其糟粕取其精华”。如果觉得写的好的地方就给个赞,写的不好的地方,也请多多包涵...

    jetsum_cms.zip

    · 采用SpringMVC3+Spring3+mybatis+Freemarker主流技术架构 · 懂html就能建站,提供最便利、合理的使用方式 · 强大、灵活的标签,用户自定义显示内容和显示方式 · 在设计上自身预先做了搜索引擎优化,增强对...

    基于Spring MVC的web框架 1.1.11

    工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...

    jeecms-3.1.1 源码版

    · 采用SpringMVC3+Spring3+Hibernate3+Freemarker主流技术架构 · 懂html就能建站,提供最便利、合理的使用方式 · 强大、灵活的标签,用户自定义显示内容和显示方式 · 在设计上自身预先做了搜索引擎优化,增强...

    网站内容管理系统jeecms3

    2.采用SpringMVC3+Spring3+Hibernate3+Freemarker主流技术架构 3.懂html就能建站,提供最便利、合理的使用方式 4.强大、灵活的标签,用户自定义显示内容和显示方式 5. 在设计上自身预先做了搜索引擎优化,增强对...

    JEECMS v3.1.0 beta

    · 采用SpringMVC3+Spring3+Hibernate3+Freemarker主流技术架构 · 懂html就能建站,提供最便利、合理的使用方式 · 强大、灵活的标签,用户自定义显示内容和显示方式 · 在设计上自身预先做了搜索引擎优化,增强...

    毕业设计_java网上商城源码.zip(极力推荐)

    java网上商城源码jspgou是基于java技术研发的电子商务管理软件,以其强大、稳定、安全、高效、跨平台等多方面的优点,网站模板统一在后台管理,系统拥有强大、灵活的标签,用户自定义显示内容和显示方式,jspgou为大...

    Thymeleaf中文参考手册_3.0.5版

    Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP .1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的...

    thymeleaf_3.0.5_中文参考手册

    简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在...

    thymeleaf_中文参考手册

    简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点: 1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在...

    JEECMS v2012sp1源码工程包(已经导入源码的工程)

    · SpringMVC3+Spring3+Hibernate3+Freemarker技术架构 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点,支持mysql、oracle、sqlserver等数据库 · 懂html就能建站,提供最便利、合理的...

    MS-MCMS内容管理系统 v4.5.2

    铭飞MCMS(铭飞内容管理系统)是一款支持不同平台、不同终端并且支持多站点的内容管理系统,SpringMVC4+Spring4+MyBatis3+Freemarker技术架构基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点;...

    java网店系统6.0 源码包

    java技术研发的电子商务管理软件,以其强大、稳定、安全、高效、跨平台等多方面的优点,网站模板统一在后台管理,系统拥有强大、灵活的标签,用户自定义显示内容和显示方式,jspgou为大、中、小企业提供一个安全、...

Global site tag (gtag.js) - Google Analytics