Freemarker 布尔类型与字符串异常处理

一、后台传值

setAttr("multi", true);

 

二、异常信息

<input type="hidden" name="multi" value="FreeMarker template error (DEBUG mode; use RETHROW in production!):    
Can't convert boolean to string automatically, because the "boolean_format" setting was "true,false", which is the legacy default computer-language format, and hence isn't accepted.    
----    
Tip: If you just want "true"/"false" result as you are generting computer-language output, use "?c", like ${myBool?c}.    
----    
Tip: You can write myBool?string('yes', 'no') and like to specify boolean formatting in place.    
----    
Tip: If you need the same two values on most places, the programmers should set the "boolean_format" setting to something like "yes,no".    
----     
----     
FTL stack trace ("~" means nesting-related):     
- Failed at: ${multi} [in template "page/buss/upload/dialog.html" at line 32, column 42]     
----     
Java stack trace (for programmers):     
----     
freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...]     
at freemarker.core.Configurable.formatBoolean(Configurable.java:589)     
at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:360)     
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)     
at freemarker.core.DollarVariable.accept(DollarVariable.java:40)     
at freemarker.core.Environment.visit(Environment.java:312)     
at freemarker.core.MixedContent.accept(MixedContent.java:62)     
at freemarker.core.Environment.visit(Environment.java:312)     
at freemarker.core.Environment.process(Environment.java:290)     
at freemarker.template.Template.process(Template.java:312)     
at com.jfinal.render.FreeMarkerRender.render(FreeMarkerRender.java:145)     
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:97)     
at com.mlh.handler.GlobalHandler.handle(GlobalHandler.java:30)     
at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:47)     
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)     
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)     
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)     
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)     
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)     
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)     
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)     
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)     
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)     
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)     
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)     
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)     
at org.eclipse.jetty.server.Server.handle(Server.java:365)     
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)     
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)     
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)     
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)     
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)     
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)     
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)     
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)     
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)     
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)     
at java.lang.Thread.run(Thread.java:745)

三、处理方法

由原来

<input type="hidden" name="multi" value="${multi!}"/>

修改为

<input type="hidden" name="multi" value="${multi?string('true','false')}"/>

 

转载于:https://my.oschina.net/u/1251467/blog/667781

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值