`

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

    - **自定义标签**: Freemarker 允许创建自定义标签,实现特定功能,如表单验证、数据格式化等。这通常通过编写 Java 代码,封装成宏库,然后在模板中调用。 4. **自定义标签的创建与使用** - **创建标签库**: ...

    freemarker及jeecms标签使用学习文档

    Freemarker是一个强大的模板...通过这些文档的学习,你将能够熟练地运用Freemarker来编写模板,以及在Jeecms中利用其自定义标签来构建高效、灵活的网站内容管理。不断实践和探索,将使你在Web开发领域更加游刃有余。

    springmvc实战项目sample

    可以通过`@ExceptionHandler`注解自定义全局异常处理,或者配置`&lt;exception-type&gt;`标签处理特定异常。 7. **视图技术** SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求选择合适的...

    SpringMVC 开发接口demo

    - SpringMVC还支持自定义错误页面,通过`&lt;error-page&gt;`标签在`web.xml`中配置。 7. **单元测试** - SpringMVC提供了`MockMvc`工具,允许开发者在不依赖服务器的情况下,对Controller进行单元测试。 8. **整合...

    手写 springmvc

    【标签】:“java spring springmvc 手写” 1. **Java**:作为主要的编程语言,SpringMVC是用Java编写的,因此手写过程需要扎实的Java基础,包括面向对象设计、多线程、反射等知识。 2. **Spring**:Spring框架为...

    SpringMVC笔记

    7. **异常处理**:SpringMVC允许自定义异常处理器,通过`@ExceptionHandler`注解的方法来处理特定类型的异常。 8. **文件上传**:在“springMvc-170-004-fileupload”这个文件中,可能涉及了SpringMVC处理文件上传...

    传播智客springmvc课堂中的工程代码

    SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。 5. **HandlerMapping**:这个组件负责将请求映射到相应的处理器(Controller方法)。 6. **HandlerAdapter**:它作为适配器,使得SpringMVC能调用...

    SpringMVC典型实例

    7. **视图解析**:SpringMVC使用ViewResolver来解析视图,常见的如JSTL、Thymeleaf和FreeMarker等。视图解析器会根据返回的视图名和前缀、后缀组合成实际的URL,然后将模型数据传递给视图进行渲染。 综上所述,...

    一个可以直接运行的基于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所需要的jar包

    JSTL提供了用于常见Web开发任务的标准标签,如循环、条件判断、XML处理等,可以替代部分自定义JSP脚本,使代码更易读和维护。`standard-1.1.2.jar`是JSTL的必需组件,包含了Servlet API的支持。 配置SpringMVC项目...

    Spring框架的SpringMVC

    `@RequestMapping`中的`produces`属性可用于指定响应的MIME类型,从而选择适当的视图技术,如JSP、FreeMarker或Thymeleaf。 8. **视图渲染**: 视图对象(如JSP页面)使用模型数据来渲染响应。开发者可以使用EL...

    SpringMVC demo 完整源码实例包含了对数据增删改查上传下载文件的实现.zip

    SpringMVC允许自定义异常处理器,通过@ControllerAdvice和@ExceptionHandler注解来统一处理全局异常。 4. **拦截器(Interceptor)**:SpringMVC的拦截器可以拦截请求并在实际处理之前或之后执行某些逻辑,如登录...

    springMVC快速开发手册

    它支持多种视图技术,如JSP、FreeMarker等,并且可以与其他Spring模块和第三方库无缝集成,如数据访问、事务管理等。 2. **配置文件** - **WEB-INF/web.xml**:这是Web应用的部署描述符,用于配置应用的基本信息,...

    深入浅出FreeMarker(一)-基础教程.pdf

    在实例应用方面,文档会进一步讲解如何应用FreeMarker,例如如何创建模板、如何在模板中使用变量和标签、如何利用宏和函数等高级特性。这些实例将帮助开发者掌握FreeMarker的常用语法和高级特性,进而在实际的项目中...

    SpringMVC案例所有源码

    4. **View**:视图层,如JSP、FreeMarker、Thymeleaf等,用于展示数据。SpringMVC通过ModelAndView或Model接口将数据传入视图。 5. **HandlerMapping**:处理映射器,负责将请求URL与Controller方法关联起来。 6. ...

    ssm框架整合的第一个阶段:完成了springmvc框架的配置和spring框架的配置

    3. **SpringMVC的拦截器**:可以通过自定义拦截器来实现权限控制、日志记录等功能,使用`&lt;mvc:interceptors&gt;`配置。 4. **异常处理**:通过`&lt;mvc:exception-handlers&gt;`或`@ExceptionHandler`注解处理未捕获的异常。...

    SpringMVC实现的简单的增删改查

    结合提供的标签"框架",我们可以深入探讨如何使用SpringMVC、Hibernate和Spring来实现一个简单的增删改查应用。 1. **SpringMVC工作原理**:SpringMVC基于Model-View-Controller设计模式,其中Controller处理HTTP...

    基于springmvc的J2EE平台

    - 负责根据视图名称解析出实际的视图对象,例如JSTL标签库、FreeMarker模板引擎等。 6. **拦截器(Interceptor)**: - 可以自定义拦截器,实现预处理和后处理功能,如权限验证、日志记录等。 7. **数据绑定和...

    基于SpringMVC的一个web框架

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

Global site tag (gtag.js) - Google Analytics