`
ssxxjjii
  • 浏览: 950342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3+freemark自定义标签

 
阅读更多
<bean id="viewResolver"
  class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  <property name="suffix">
   <value>.ftl</value>
  </property>
  <property name="viewClass">
   <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView
   </value>
  </property>
  <property name="contentType">
   <value>text/vnd.wap.wml;charset=UTF-8</value>
  </property>
  <property name="exposeSpringMacroHelpers" value="true"/>
  <property name="requestContextAttribute" value="rc"></property>
 </bean>

<!-- 配置Freemarker -->
	<bean id="freemarkerConfigurer"
		class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
		<property name="templateLoaderPath" value="/WEB-INF/pages/templates/" />
		<property name="freemarkerSettings"><!-- 如果模板不经常更新,此属性设置更新延迟时间 -->
			<props>
				<prop key="template_update_delay">0</prop>
				<prop key="defaultEncoding">UTF-8</prop>
				<prop key="datetime_format">yyyy-MM-dd HH:mm</prop>
				<prop key="time_format">HH:mm</prop>
				<prop key="date_format">yyyy-MM-dd</prop>
				<prop key="number_format">0.##</prop>
			</props>
		</property>
		<property name="freemarkerVariables">
			<map> 
				<entry key="tjia" value-ref="tjia"/> 
				<entry key="tsub" value-ref="tsub"/> 
			</map> 
		</property>
	</bean>

	<bean id="tjia" class="com.wap.web.directive.TestJiaDirective"></bean>
	<bean id="tsub" class="com.wap.web.directive.TestSubDirective"></bean>

 

自定义标签类:

import java.io.IOException;
import java.util.Map;

import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;

public class TestJiaDirective implements TemplateDirectiveModel{

	@Override
	public void execute(Environment env, Map params, TemplateModel[] loopVars,
			TemplateDirectiveBody body) throws TemplateException, IOException {
		int v1 = Integer.parseInt(params.get("v1").toString());
		int v2 = Integer.parseInt(params.get("v2").toString());
		System.out.println("v1:"+v1+"----v2:"+v2);
		for(TemplateModel t:loopVars){
			System.out.println("----TemplateModel:"+t.toString());
		}
		env.getOut().write(String.valueOf(v1+v2));
	}
	
}

 

前端:ftl中

<@tjia v1="1" v2="2"/>

 

 

分享到:
评论

相关推荐

    freemark 自定义标签 总结

    自定义标签可以与Spring MVC、Struts2等框架集成,提供更丰富的功能。 通过上述内容,我们了解了Freemarker自定义标签的基本概念、创建与使用方法,以及如何在实际项目中发挥作用。自定义标签极大地增强了...

    spring mvc freemarker 自定义标签

    下面将详细介绍Spring MVC与Freemarker自定义标签的使用。 首先,我们需要了解Freemarker的基础。Freemarker是一个基于模板的语言,它的主要任务是根据数据模型生成输出。在Spring MVC中,Freemarker模板通常用于...

    freemark模板&模版技术

    2. 自定义标签库:支持自定义标签,可以扩展模板语言的功能。 3. 国际化支持:通过不同的消息资源文件实现多语言输出。 4. 缓存机制:提高性能,减少对服务器资源的消耗。 5. 高级控制结构:包括条件判断、循环、...

    test_Freemark freemark的基础入门小程序

    此外,也可以自定义方法,通过`&lt;#function&gt;`标签实现。 5. **模板继承与导入**: 使用`&lt;#include&gt;`标签可以导入其他模板,而`&lt;#macro&gt;`可以定义可重用的模板片段,通过`&lt;#nested&gt;`调用。 6. **运行Test.java**: ...

    freemark 2.3.19 中文教程

    3. **国际化(Internationalization)**: FreeMarker支持多语言,通过`&lt;#t&gt;`或`&lt;#lt&gt;`标签进行日期和时间格式化,`&lt;#trans&gt;`处理翻译。 4. **自定义函数和指令(Custom Tags and Directives)**: 可以通过扩展...

    campus-market_springboot_后台管理系统_stand3fu_数据权限控制_

    涉及的知识点有:springboot框架原理、freemark模板标签语法、jpa数据库操作及自动建表、统一上传文件实现方法、自定义注解实现统一验证方法、权限拦截器实现权限统一管理、自定义分页插件封装、调用控制台命令对...

    freemark2.36

    标题"freemark2.36"指的是FreeMarker的版本号2.3.16,这可能是该软件的一个稳定版本。 FreeMarker的核心功能是将数据模型与HTML或其他格式的模板结合,生成动态内容。它的工作原理是将预先设计好的模板文件(.ftl...

    freemark开发指南

    它是Java平台上的一个开源项目,广泛应用于Web开发领域,特别是与Spring MVC等框架结合使用。本指南将帮助初学者理解并掌握Freemarker的基本概念、指令和高级方法。 1. **基本概念** - **Sequence**:序列,类似于...

    Freemarker通用select下拉框

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架中的JSP替代技术。本示例关注的是如何在Freemarker(FTL)中创建一个通用的`select`下拉框,以满足各种Web界面中的下拉选择需求。...

    freemark中文文档

    Freemarker是一个强大的模板引擎,常用于Web应用中的视图层渲染,比如Spring MVC框架就广泛使用了Freemarker作为其视图解析器。本文将详细介绍Freemarker的基础知识,包括快速入门、数据模型、配置以及其他说明。 ...

    springboot集成freemarker和shiro框架

    3. 自定义登录控制器:创建一个用于处理用户登录的Controller,调用Shiro进行身份验证。 **五、整合FreeMarker与Shiro** 1. 在FreeMarker模板中使用Shiro标签库:在.ftl文件顶部引入Shiro标签库: ```html ${'@org....

    Freemarker-2.3.16.jar

    - **自定义标签**:通过扩展Freemarker,可以创建自己的模板标签库。 - **表达式语言**:支持丰富的表达式运算,如算术运算、比较运算、逻辑运算等。 6. **与其他技术的结合** - **MVC框架**:与Spring、Struts...

    从jsp到freemarker2.3.23

    除了以上提到的内容外,Freemarker还支持许多其他特性,如自定义标签、指定默认值、存在性检查等。例如,指定默认值可以直接在表达式中使用`!`操作符;检查变量是否存在则可以使用`?`操作符;定义列表和映射字面量也...

    freemarker语法完整版

    - `@` 用户自定义标签。 **11. 特殊操作符** - `!`: 默认值操作符。 - `??`: 缺失值测试操作符。 **12. 模板注释** - `注释 --&gt;` 不会被输出。 **13. 内置方法** - 序列、哈希和数字的内置方法。 - 示例: ...

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

    同时,它支持多种方式加载模板,例如从文件系统、数据库等,并且可以自定义宏和函数,使开发更加灵活。 然而,FreeMarker也有其缺点。例如,其在Eclipse中的代码格式化插件不够完善,但IntelijIDEA9下有较好的插件...

    struts1.x整合freemarker

    Struts1.x是一款经典的MVC(Model-View-Controller)框架,它在Java ...同时,随着技术的发展,虽然Struts1.x已逐渐被Struts2、Spring MVC等更现代的框架取代,但理解这些基础知识对于学习更高级的框架仍然很有帮助。

    freemarker 源码及文档

    手册涵盖了Freemarker的基本概念、语法、指令、内置函数、自定义标签、模板设计模式等多个方面。特别地,对于新手,"快速入门"章节可以帮助理解如何创建第一个模板并进行简单的数据渲染;"模板语言"部分详细讲解了...

    freemarker总结

    6、 用户自定义FTL指令:宏和变换器 7、 节点 节点变量表示为树型结构中的一个节点,通常在XML处理中使用。 在模板里对sequences和hashes初始化 sequences 1. [“you”,”me”,”he”] 2. 1..100 3. [ {“Akey...

Global site tag (gtag.js) - Google Analytics