文档章节

Freemarker自定义指令

MrLiSen
 MrLiSen
发布于 2017/09/08 14:08
字数 180
阅读 2
收藏 0
Freemarker自定义指令:
1、编写一个HelloDirective 实现 TemplateDirectiveModel接口
2、重写excute方法:
Environment 环境;Map<String, TemplateModel>params:页面传入的参数;
TemplateModel[] loopVars: 变量;TemplateDirectiveBody body:模本的内容
a).解析参数:BeanWrapper wrapper = new BeansWrapperBuilder(Configuration.VERSION_2_3_21).build();
Integer obj = (Integer)wrapper.unwrapper(Template model, Integer.class);
b). 将结果存入env = request.setAbbtribute(key, obj): env.setVariable("helloworld", model);
c). 返回到页面:
if (body == null) {
env.getOut().write(JSON.toJsonString(obj));
} else {
body.render(env.getOut());
}

3、在spring中定义模板名称
<bean id="freemarkerConfig"
          class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/views/" />
        <property name="defaultEncoding" value="UTF-8" />
        <property name="freemarkerSettings">
            <props>
                <prop key="number_format">0.##########</prop>
            </props>
        </property>
<!--定义模板名称-->
        <property name="freemarkerVariables">
            <map>
                <entry key="hello_world" value-ref="helloDirective" />
            </map>
        </property>


    </bean>

4、页面引用
<html>
    <head></head>
    <body>
        < @hello_world name="${name}" abc=123 >
            ${helloworld.userName} : HELLO WORLD!!
        </@hello_world>
    </body>
</html>

© 著作权归作者所有

MrLiSen
粉丝 0
博文 6
码字总数 987
作品 0
虹口
程序员
私信 提问
手把手教你新建Jfinal 项目(五)

Freemarker原理解析 2011-05-13 11:19:41| 分类: JavaEE | 标签:freemarker 模板 变量 数据模型 文件 |字号 订阅 FreeMarker生成静态页原理 FreeMarker适合于作为Web应用的表现层。freemar...

胡萝卜炒肉
2014/05/29
500
1
Java模版引擎:Velocity 和 FreeMarker 孰优孰劣

对 Java 程序员来说,最优秀的模版引擎无外乎 Velocity 和 FreeMarker 了。但是对一个尚未接触过这两个项目的人来说,就不知道该选择哪个,哪个才是最适合自己的。下面的内容来自 FreeMarker...

红薯
2009/05/07
24.4K
17
FreeMarker 2.3.22 版本发布,Java 模板引擎

FreeMarker 2.3.22 版本发布,值得关注的特性: DefaultObjectWrapper 改进 (mostly on the field of Map and List wrapping), enabled by incompatible_improvements 2.3.22. 改进 Freemark......

CraneH
2015/06/09
2.2K
1
Spring Boot 最佳实践(三)模板引擎FreeMarker集成

一、FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组件。 ...

王磊
2018/08/31
0
0
FreeMarker在eclipse中的入门例子

今天海浪为大家分享一个FreeMarker在eclipse中的入门例子。 一、在eclipse中创建FreeMarker模板 在FreeMarker中模板的概念就是:包含一些由${…}包围的特殊代码的文件。这些特殊代码是FreeM...

oecp
2011/04/26
916
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
4
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
10
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
9
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
4
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部