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.4+hibernate4.2.8+freemarker2.3.16 功能方面只是一个简单的注册登录,前台使用freemarker渲染,使用了freemarker自定义标签。
- **自定义标签**: Freemarker 允许创建自定义标签,实现特定功能,如表单验证、数据格式化等。这通常通过编写 Java 代码,封装成宏库,然后在模板中调用。 4. **自定义标签的创建与使用** - **创建标签库**: ...
Freemarker是一个强大的模板...通过这些文档的学习,你将能够熟练地运用Freemarker来编写模板,以及在Jeecms中利用其自定义标签来构建高效、灵活的网站内容管理。不断实践和探索,将使你在Web开发领域更加游刃有余。
可以通过`@ExceptionHandler`注解自定义全局异常处理,或者配置`<exception-type>`标签处理特定异常。 7. **视图技术** SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求选择合适的...
- SpringMVC还支持自定义错误页面,通过`<error-page>`标签在`web.xml`中配置。 7. **单元测试** - SpringMVC提供了`MockMvc`工具,允许开发者在不依赖服务器的情况下,对Controller进行单元测试。 8. **整合...
【标签】:“java spring springmvc 手写” 1. **Java**:作为主要的编程语言,SpringMVC是用Java编写的,因此手写过程需要扎实的Java基础,包括面向对象设计、多线程、反射等知识。 2. **Spring**:Spring框架为...
7. **异常处理**:SpringMVC允许自定义异常处理器,通过`@ExceptionHandler`注解的方法来处理特定类型的异常。 8. **文件上传**:在“springMvc-170-004-fileupload”这个文件中,可能涉及了SpringMVC处理文件上传...
SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。 5. **HandlerMapping**:这个组件负责将请求映射到相应的处理器(Controller方法)。 6. **HandlerAdapter**:它作为适配器,使得SpringMVC能调用...
7. **视图解析**:SpringMVC使用ViewResolver来解析视图,常见的如JSTL、Thymeleaf和FreeMarker等。视图解析器会根据返回的视图名和前缀、后缀组合成实际的URL,然后将模型数据传递给视图进行渲染。 综上所述,...
工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...
JSTL提供了用于常见Web开发任务的标准标签,如循环、条件判断、XML处理等,可以替代部分自定义JSP脚本,使代码更易读和维护。`standard-1.1.2.jar`是JSTL的必需组件,包含了Servlet API的支持。 配置SpringMVC项目...
`@RequestMapping`中的`produces`属性可用于指定响应的MIME类型,从而选择适当的视图技术,如JSP、FreeMarker或Thymeleaf。 8. **视图渲染**: 视图对象(如JSP页面)使用模型数据来渲染响应。开发者可以使用EL...
SpringMVC允许自定义异常处理器,通过@ControllerAdvice和@ExceptionHandler注解来统一处理全局异常。 4. **拦截器(Interceptor)**:SpringMVC的拦截器可以拦截请求并在实际处理之前或之后执行某些逻辑,如登录...
它支持多种视图技术,如JSP、FreeMarker等,并且可以与其他Spring模块和第三方库无缝集成,如数据访问、事务管理等。 2. **配置文件** - **WEB-INF/web.xml**:这是Web应用的部署描述符,用于配置应用的基本信息,...
在实例应用方面,文档会进一步讲解如何应用FreeMarker,例如如何创建模板、如何在模板中使用变量和标签、如何利用宏和函数等高级特性。这些实例将帮助开发者掌握FreeMarker的常用语法和高级特性,进而在实际的项目中...
4. **View**:视图层,如JSP、FreeMarker、Thymeleaf等,用于展示数据。SpringMVC通过ModelAndView或Model接口将数据传入视图。 5. **HandlerMapping**:处理映射器,负责将请求URL与Controller方法关联起来。 6. ...
3. **SpringMVC的拦截器**:可以通过自定义拦截器来实现权限控制、日志记录等功能,使用`<mvc:interceptors>`配置。 4. **异常处理**:通过`<mvc:exception-handlers>`或`@ExceptionHandler`注解处理未捕获的异常。...
结合提供的标签"框架",我们可以深入探讨如何使用SpringMVC、Hibernate和Spring来实现一个简单的增删改查应用。 1. **SpringMVC工作原理**:SpringMVC基于Model-View-Controller设计模式,其中Controller处理HTTP...
- 负责根据视图名称解析出实际的视图对象,例如JSTL标签库、FreeMarker模板引擎等。 6. **拦截器(Interceptor)**: - 可以自定义拦截器,实现预处理和后处理功能,如权限验证、日志记录等。 7. **数据绑定和...
工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis...