巧用Freemarker的自定义方法

今天想要在Freemarker模版文件里使用HttpServletResponse对象的encodeURL方法,对页面链接的URL进行 Encode。据我所知,在Freemarker模版文件里是可以使用scriptlet和其他第三方标签的,可是当我直接在<%%>里书写 scriptlet时,却被原封不动地输了出来,于是就尝试引入JSTL,以便使用其中的<c:url value=""/>标签来达到同样目的:

dataMap.put("encodeURL", new EncodeURLMethod(context.getResponse()));  

在Freemarker模版文件中这样使用:

Freemarker代码  巧用Freemarker的自定义方法
  1. ${encodeURL("/news/showNews.sf?id=123456")}  

输出结果实际就是使用response.encodeURL输出的结果。

相关推荐