Request processing failed; nested exception is freemarker.core.NonStringException 异常解决


  1. <html>  
  2.   <head>  
  3.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  4.     <title>freemarker基本数据类型</title>  
  5.   
  6.   </head>  
  7.     
  8.   <body>  
  9.           张三丰  
  10.        
  11.      123,456  
  12.        
  13.        
  14. Error on line 20, column 8 in type.ftl  
  15. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  16. The problematic instruction:  
  17. ----------  
  18. ==> ${flag} [on line 20, column 6 in type.ftl]  
  19. ----------  
  20.   
  21. Java backtrace for programmers:  
  22. ----------  
  23. freemarker.core.NonStringException: Error on line 20, column 8 in type.ftl  
  24. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  25.     at freemarker.core.Expression.getStringValue(Expression.java:126)  
  26.     at freemarker.core.Expression.getStringValue(Expression.java:93)  
  27.     at freemarker.core.DollarVariable.accept(DollarVariable.java:76)  
  28.     at freemarker.core.Environment.visit(Environment.java:221)  
  29.     at freemarker.core.MixedContent.accept(MixedContent.java:92)  
  30.     at freemarker.core.Environment.visit(Environment.java:221)  
  31.     at freemarker.core.Environment.process(Environment.java:199)  
  32.     at freemarker.template.Template.process(Template.java:259)  
  33.     at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)  
  34.     at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)  
  35.     at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)  
  36.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  37.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
  38.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
  39.     at java.lang.reflect.Method.invoke(Unknown Source)  
  40.     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)  
  41.     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)  
  42.     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)  
  43.     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)  
  44.     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)  
  45.     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)  
  46.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)  
  47.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)  
  48.     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)  
  49.     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)  
  50.     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)  
  51.     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)  
  52.     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)  
  53.     at org.junit.runners.ParentRunner.run(ParentRunner.java:300)  
  54.     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)  
  55.     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)  
  56.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)  
  57.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)  
  58.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)  
  59.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)  
  60. 五月 30, 2014 11:23:18 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error  
  61. 严重: Template processing error: "Error on line 20, column 8 in type.ftl\nExpecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2"  
  62.   
  63. Error on line 20, column 8 in type.ftl  
  64. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  65. The problematic instruction:  
  66. ----------  
  67. ==> ${flag} [on line 20, column 6 in type.ftl]  
  68. ----------  
  69.   
  70. Java backtrace for programmers:  
  71. ----------  
  72. freemarker.core.NonStringException: Error on line 20, column 8 in type.ftl  
  73. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  74.     at freemarker.core.Expression.getStringValue(Expression.java:126)  
  75.     at freemarker.core.Expression.getStringValue(Expression.java:93)  
  76.     at freemarker.core.DollarVariable.accept(DollarVariable.java:76)  
  77.     at freemarker.core.Environment.visit(Environment.java:221)  
  78.     at freemarker.core.MixedContent.accept(MixedContent.java:92)  
  79.     at freemarker.core.Environment.visit(Environment.java:221)  
  80.     at freemarker.core.Environment.process(Environment.java:199)  
  81.     at freemarker.template.Template.process(Template.java:259)  
  82.     at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)  
  83.     at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)  
  84.     at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)  
  85.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  86.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
  87.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
  88.     at java.lang.reflect.Method.invoke(Unknown Source)  
  89.     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)  
  90.     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)  
  91.     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)  
  92.     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)  
  93.     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)  
  94.     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)  
  95.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)  
  96.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)  
  97.     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)  
  98.     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)  
  99.     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)  
  100.     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)  
  101.     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)  
  102.     at org.junit.runners.ParentRunner.run(ParentRunner.java:300)  
  103.     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)  
  104.     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)  
  105.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)  
  106.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)  
  107.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)  
  108.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)  
  109.   
  110.   
  111. Error on line 20, column 8 in type.ftl  
  112. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  113. The problematic instruction:  
  114. ----------  
  115. ==> ${flag} [on line 20, column 6 in type.ftl]  
  116. ----------  
  117.   
  118. Java backtrace for programmers:  
  119. ----------  
  120. freemarker.core.NonStringException: Error on line 20, column 8 in type.ftl  
  121. Expecting a string, date or number here, Expression flag is instead a freemarker.template.TemplateBooleanModel$2  
  122.     at freemarker.core.Expression.getStringValue(Expression.java:126)  
  123.     at freemarker.core.Expression.getStringValue(Expression.java:93)  
  124.     at freemarker.core.DollarVariable.accept(DollarVariable.java:76)  
  125.     at freemarker.core.Environment.visit(Environment.java:221)  
  126.     at freemarker.core.MixedContent.accept(MixedContent.java:92)  
  127.     at freemarker.core.Environment.visit(Environment.java:221)  
  128.     at freemarker.core.Environment.process(Environment.java:199)  
  129.     at freemarker.template.Template.process(Template.java:259)  
  130.     at com.you.freemarker.FreemarkerTemplate.printFtl(FreemarkerTemplate.java:77)  
  131.     at com.you.test.freemarker.FreemarkerTest.studentPrint(FreemarkerTest.java:172)  
  132.     at com.you.test.freemarker.FreemarkerTest.testDataType(FreemarkerTest.java:159)  
  133.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  134.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
  135.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
  136.     at java.lang.reflect.Method.invoke(Unknown Source)  
  137.     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)  
  138.     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)  
  139.     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)  
  140.     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)  
  141.     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)  
  142.     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)  
  143.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)  
  144.     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)  
  145.     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)  
  146.     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)  
  147.     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)  
  148.     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)  
  149.     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)  
  150.     at org.junit.runners.ParentRunner.run(ParentRunner.java:300)  
  151.     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)  
  152.     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)  
  153.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)  
  154.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)  
  155.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)  
  156.     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)  

2、错误原因

[html]  view plain  copy
 print ?
  1. <#--定义布尔值-->  
  2. <#assign flag = true/>  
  3. ${flag}  
不能直接输出除了字符串和数字之外的类型,否则会报错


3、解决办法

    将布尔类型转换为字符串输出

    将dto 中boolean 类型的isXXXX  改为getXXX


结果:true


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值