主题 : 关于freemarker很不解的问题
级别: 白丁
UID: 8096
积分:1 加为好友
威望: 0 精华: 0
主题:0 回复:1
注册时间:2010-06-20
在线时长:0
1#   发表于:2010-07-15 00:34:45  IP:116.59.*.*
小弟初学freemarker,     在WebRoot\WEB-INF\ftl_lib\ponyjava.com\ui\table.ftl里93行有
  <#list normalOperate as operate>
       <#local opDisabled = operate['displayExp']?? && !operate['displayExp']?eval />
       
     ${(opDisabled)}

              问题一: 里面的eval上网找的意思是格式化为flt, 而operate['displayExp']??为是否存在这个,后面的!operate['displayExp']?eval 就理解不了,请帮忙.
              问题二:我的后面加了一个${(opDisabled)}按理是把值打出来.但报错了.,请帮忙.
             Error on line 95, column 20 in WEB-INF/ftl_lib/ponyjava.com/ui/table.ftl
Expecting a string, date or number here, Expression (opDisabled) is instead a freemarker.template.TemplateBooleanModel$1
The problematic instruction:
----------
==> ${(opDisabled)} [on line 95, column 18 in WEB-INF/ftl_lib/ponyjava.com/ui/table.ftl]
 in user-directive p.table [on line 1, column 1 in WEB-INF/cms_sys/abstract/channel/list.html]
 in include "/WEB-INF/cms_sys/abstract/channel/list.html" [on line 24, column 1 in WEB-INF/product_sys/channel/list.html]
----------

Java backtrace for programmers:
----------
freemarker.core.NonStringException: Error on line 95, column 20 in WEB-INF/ftl_lib/ponyjava.com/ui/table.ftl
Expecting a string, date or number here, Expression (opDisabled) is instead a freemarker
级别: 白丁
UID: 7315
积分:5 加为好友
威望: 0 精华: 0
主题:0 回复:5
注册时间:2010-05-28
在线时长:0
2#   发表于:2010-07-15 11:11:43  IP:123.173.*.*
答一:eval的准确解释是:This built-in evaluates a string as an FTL expression. For example "1+2"?eval returns number 3.

答二:${(opDisabled)}  -> ${opDisabled}
级别: 白丁
UID: 8096
积分:1 加为好友
威望: 0 精华: 0
主题:0 回复:1
注册时间:2010-06-20
在线时长:0
3#   发表于:2010-07-15 13:18:29  IP:113.15.*.*
谢谢你的回答
          对于第一个问题!operate['displayExp']?eval 是不是operate['displayExp']为true或false的字符串,然后用?eval 格式化为boolean类型再用!取相反。
          我用 ${opDisabled}试过一样出现这种问题,很奇怪。你可以试试。
级别: 白丁
UID: 8096
积分:1 加为好友
威望: 0 精华: 0
主题:0 回复:1
注册时间:2010-06-20
在线时长:0
4#   发表于:2010-07-27 21:06:20  IP:116.19.*.*
俺的妈哦,没人理我
1 共1页