2019独角兽企业重金招聘Python工程师标准>>>

spring mvc项目中利用freemarker生成自定义标签 博客分类: java

spring mvc +freemarker的项目中,我们想要在html页面上利用自定义标签,来方便完成我们的一些功能,除了在页面上定义标签外,我们还可以利用程序来定义。
首先要写一个类UpperDirective.Java来实现TemplateDirectiveModel接口,
代码如下:
[java] view plain copy
public class UpperDirective implements TemplateDirectiveModel  {  @Override  public void execute(Environment env, Map map, TemplateModel[] templateModels,  TemplateDirectiveBody body) throws TemplateException, IOException {  if(!map.isEmpty()){  throw new TemplateModelException("this directive doesn't allow parameters");  }  if(templateModels.length!=0){  throw new TemplateModelException("this directive doesn't allow variables");  }  if(body!=null){  body.render(new UpperCaseFilterWriter(env.getOut()));  }else{  throw new RuntimeException("missing body");  }  }  }
class UpperCaseFilterWriter extends Writer{  private final Writer out;  public UpperCaseFilterWriter(Writer out) {  this.out=out;  }  @Override  public void write(char[] cbuf, int off, int len) throws IOException {  char[] transformedCbuf = new char[len];  for(int i=0;i<len;i++){  transformedCbuf[i]=Character.toUpperCase(cbuf[i+off]);  }  out.write(transformedCbuf);  }  @Override  public void flush() throws IOException {  out.flush();  }  @Override  public void close() throws IOException {  out.close();  }  }
然后在配置文件中进行配置:
[html] view plain copy
<bean id="freemarkerConfig"   class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  <property name="templateLoaderPath">  <value>/ftl/</value>  </property>  <property name="freemarkerSettings">  <props>  <prop key="locale">zh_CN</prop>  <prop key="defaultEncoding">UTF-8</prop>  <prop key="date_format">yyyy-MM-dd</prop>  <prop key="time_format">HH:mm:ss</prop>  <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  <prop key="number_format">0.################</prop>  </props>  </property>  <property name="freemarkerVariables">  <map>  <entry key="upper" value-ref="upperDirective"></entry>  </map>  </property>    </bean>  <bean id="upperDirective" class="com.nbsh.cms.util.UpperDirective"></bean>   在页面上输出的标签:<@upper>hh</@upper>  就能输出大写的:HH了。

http://blog.csdn.net/uk8692/article/details/38176263

转载于:https://my.oschina.net/xiaominmin/blog/1598302

spring mvc项目中利用freemarker生成自定义标签相关推荐

  1. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  2. Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

  3. Java项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就 ...

  4. java web 操作word文档_Java Web项目中使用Freemarker生成Word文档

    Web项目中生成Word文档的操作屡见不鲜.基于Java的解决方式也是非常多的,包含使用Jacob.Apache POI.Java2Word.iText等各种方式,事实上在从Office 2003開始 ...

  5. 如何在Spring和Spring MVC项目中进行测试

    Spring框架概述 Spring大约包含了20个模块,这些模块组成了核心容器(Core Container).数据访问/集成(Data Access/Integration).Web.AOP(面向切 ...

  6. spring MVC项目中,欢迎页首页根路径

    参考:http://iammr.7.blog.163.com/blog/static/49102699201222643458216 0. 问题: 如何改mvc中项目的欢迎页,或者叫做根路径 一个东西 ...

  7. java中利用freemarker生成样式比较复杂的word

    这两天接到一个需求,要在系统中生成word版的需求规格说明书,领导给了个之前的样本给我,要求挺高,必须和给的样本基本一样. 基本样式主要有多级标题.动态图片.页眉页脚等,如下(内容部分因为隐私就不贴出 ...

  8. wps制作pdf模板,Adobe Acrobat DC利用pdf模板做填充数据表单域,在maven项目中利用java生成pdf

    如做pdf建议http://www.xdocin.com/index.html 以下方法仅供参考 首先制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf格式文件 3.通过Adob ...

  9. 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...

    2019独角兽企业重金招聘Python工程师标准>>> 1.为项目增加以来  pom.xml中使用 <!-- spring session 单点登录 --> //本项目使 ...

最新文章

  1. LeetCode Regular Expression Matching(.和*通配符匹配)
  2. 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
  3. Matlab:成功解决Expression or statements is incorrect--possibly unbalanced (,{,[.
  4. 笔记-信息系统开发基础-CMMI过程域分类-连续式的模型
  5. 如何从 0 到 1 打造团队 PC/H5 构建工具
  6. Git 图形化操作之合并提交记录
  7. 作为微软技术.net 3.5的三大核心技术之一的WCF虽然没有WPF美丽的外观
  8. 无废话ExtJs 入门教程十[单选组:RadioGroup、复选组:CheckBoxGroup]
  9. es6 Generator.prototype.throw()方法
  10. python flask 分页前后端分离_【flask + vue 前后端分离博客】创建第一个 Flask RESTFul(一)...
  11. 第一章python绝对温标身体质量指数bmi
  12. flex mx:TabNavigator进行选项卡切换,需要进行交互时。发生Error #1009错误
  13. Windows 系统必备软件
  14. ipa在线下载安装(itms-services)
  15. 综述:根际微生物组提高植物耐盐性的研究进展
  16. 怎么用计算机计算方位角,坐标方位角连续计算 fx-5800计算器编程
  17. TensorFlow Serving Architecture
  18. 笔记本安装系统不认硬盘?
  19. Context [] startup failed due to previous errors 的解决方式
  20. 4. 【gRPC系列学习】Resolver原理详解

热门文章

  1. 连续低频脑电图解码手臂运动,实现机械手臂的闭环自然控制
  2. eeglab中文教程系列(5)-提取数据epoch
  3. seaborn系列 (13) | 点图pointplot()
  4. 苹果5年来盈利首次未超预期,但大中华区营收暴增83%
  5. AI也会查水表啦!德国小哥开发水表读取器,可OTA升级,成本不到80元
  6. NASA科学家联名求撤稿:金星有生命迹象是大乌龙,12阶多项式拟合不靠谱
  7. 清华类脑计算成果再登Nature:张悠慧施路平团队出品,有望打破冯诺依曼瓶颈...
  8. 踏入职场后,差距来自哪里
  9. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
  10. 编译安装 redis 2.2.14