frameMarker之TemplateDirectiveModel
来源:互联网 发布:gif屏幕录像软件 编辑:程序博客网 时间:2024/06/16 04:39
frameMarker之TemplateDirectiveModel
spring-freemarker.xml中配置
项目以spring+frameMarker+mybatis
import freemarker.core.Enviroment;import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.TemplateDirectiveBody;import freemarker.template.TemplateDirectiveModel;import freemarker.template.TemplateException;import freemarker.template.TemplateModel;@Component("myController") //把普通的pojo实例化到spring容器public class MyController implements TemplateDirectiveModel{@Autowiredprivate IService iService;/***当模板页面遇到用户自定义的标签指令时,该方法会被执行。*@param env:系统环境变量,通常用它来输出相关内容,比如env.getOut();*@param params:自定义标签传过来的对象,其key=自定义标签的参数名,valuez值是TemplateModel类型,而TemplateModel是一个接口类型,通常我们都使用TemplateScalarModel接口替代它获取一个String值*@param loopVars:循环替代变量*@param body 用于处理自定义标签中的内容,如<@myDirective>将要被处理的内容</@myDirective>;当标签是<@myDirective/>格式时,body=null**/public void execute(Enviroment env,Map params,TemplateMode[] loopVars TemplateDirectiveBody body) throws TemplateException,IOException{int comeon=params.get("comeon");List<Map<String,Object>> mapList = iService.getList(comeon);if(body != null){env.setVariable("mapList",new DefaultObjectWrapper(Configuration.VERSION_2_3_23).wrap(mapList));body.render(env.getOut());}}}
在web.xml中指定freemarker的配置文件
<web-app><servlet><servlet-name>myDispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:conf/applicationContext.xml,classpath*:conf/spring-datasource.xml,classpath*:conf/spring-freemarker.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>myDispatcher</servlet-name><url-pattern>*.html</url-pattern><!--前台请求--></servlet-mapping><servlet-mapping><servlet-name>myDispatcher</servlet-name><url-pattern>*.do</url-pattern><!--后台请求--></servlet-mapping></web-app>
spring-freemarker.xml中配置
<!--配置FreeMarker的配置文件-->
<bean id="cf" class="org.springframework.beans.factory.config.PropertiesFactoryBean"><property name="location" value="classpath:my.properties"/></bean><!--配置FreeMarker的模板路径--><bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"><property name="freemarkerSettings" ref="cf"/><property name="templateLoaderPaths"><list><value>/page/</value></list></property><!--自定义FreeMarkerVariables的指令及方法--><property name="freemarkerVariables"><map><entry key="myV" value-ref="myController"/></map></property></bean>
wo.ftl
<@myV comeon=2><#list mapList as temp>名称:${temp.name}</#list></@myV>
0 0
- frameMarker之TemplateDirectiveModel
- freemarke之TemplateDirectiveModel详解
- FreeMarker自定义TemplateDirectiveModel之重复提交&下拉列表
- FreeMarker自定义TemplateDirectiveModel
- freemarker 自定义TemplateDirectiveModel
- FreeMarker自定义TemplateDirectiveModel
- freemarker 自定义TemplateDirectiveModel
- Freemarker 自定义标签 实现TemplateDirectiveModel
- 自定义freemarker标签实现TemplateDirectiveModel时获取request
- framemarker模板解析,及调后台方法 、及后台创建模板
- 復之之理
- 博学之,审问之,慎思之,明辨之,笃行之
- 博学之,审问之,慎思之,明辨之,笃行之
- 雪,之韵,之恋,之......
- 年终总结之天涯之无敌之言论
- 万源之源之drupal 之 drupal_flush_all_caches
- 编程之美------之数字之魅
- 之记录员
- ubuntu ping不通网时的设置
- LightOJ 1090 Trailing Zeroes (II)
- SqlServer--bat批处理执行sql语句1-osql
- Design Patterns in Android:单例模式
- three
- frameMarker之TemplateDirectiveModel
- Java修饰符小结
- JZOJ 3808 【NOIP2014模拟8.25】道路值守
- Design Patterns in Android:模板方法模式
- Jsp乱码的解决方法
- DICOM之常用Tag
- 2017-01-08 笔记 下 P2P Chord算法
- Android 6.0 动态申请权限
- 理解window和windowmanager