被FreeMarker气死了,${…}的问题
生成JSP一个很典型的问题:JSP中使用了JSTL的c:out标记:<c:out value=${subject.name}>,显然这个${…}是不应该被FreeMarker解析的。我用Velocity的方法想当然的改成了<c:out value=\${subject.name}>,不行;于是又改成了<c:out value=$${subject.name}>,依旧不行……郁闷。花了一个小时浏览了一遍Designer Guilde, Programmer Guilde, FAQ, Referrence,没有找到我想要的结果。生闷气。
找到他的邮件列表,有人跟我有同样的问题:http://article.gmane.org/gmane.comp.web.freemarker.user/838 FreeMarker提供的方法居然是:将$换为%,然后用#replace指令或者?replace替换为’$'……馊主意,来气;继续往下看,果然提出这个问题的家伙狠狠批评了一顿:”I think that’s overstating the challenge considerably!” http://article.gmane.org/gmane.comp.web.freemarker.user/844 呵呵
算了,有解决办法总比没有强,先将就吧。
June 29th, 2006 at 2:46 pm
我用时报错:说没有
如下:
Failed to parse FreeMarker template for URL [login.ftl]; nested exception is freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown directive: #replace on line: 37, column: 21, in template: login.ftl
你是怎么在ftl里面:的.先谢了!
July 20th, 2006 at 5:16 pm
2.3.6中没有
July 21st, 2006 at 4:37 pm
下午也遇到了这个问题,想了一个解决方法,使用${‘$’}{subject.name}来转义,具体见blog
June 19th, 2007 at 4:43 pm
你可以考虑使用escape来避免对${}进行处理
http://www.freemarker.org/docs/ref_directive_escape.html