论坛首页 Java企业应用论坛

webwork2.2.2 doubleselect的问题

浏览 3668 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-08-30  
第一个list 是个map ,就如他的文档的例子上:
<ww:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

这个时候在我的应用中不能正确运行.查看了他的doubleselect.ftl
发现做循环的时候写的是 <@ww.iterator value="parameters.list">
因为list 是map, 变量paramerters.list的类型被转成了java.util.LinkedHashMap$EntryIterator,如果第一个list 是一个java.util.List,那这个paramerters.list 是个java.util.ArrayList . 如果是ArrayList 做循环可以正确执行. 但是是 EntryIterator, 发现 hasNext() 已经返回false ,所以没有执行循环, 为什么hasNext() 会返回false ?? , 发现上面有一行
<#include "/${parameters.templateDir}/simple/select.ftl" />
而 select.ftl 中 有一个循环 <@ww.iterator value="parameters.list">
也使得Iterator 已经循环完毕了, 导致 hasNext()返回false .

总得来说就是 <doubleselect /> 标签 list 属性 是个 map 的时候没法使用, 不知道大家遇到这种情况没有. 有什么解决办法.
   发表时间:2006-08-30  
iterator是独立实例的话,两个iterator并不会相互干扰的。

楼主先拿纯java试验一下就知道了。

另外楼主是说webwork的例子不能运行还是类似的,你的实现不能运行?

webwork.2.2.3出了,更新下吧。bug fix release.
0 请登录后投票
   发表时间:2006-08-30  
两次调用parameters.list  返回的是同一个实例.
java.util.LinkedHashMap$EntryIterator@151cc3

所以第二次iterate 不行了.
2.2.2 还说是最后一个版本呢,,, 赶紧看看bug fix 去.
0 请登录后投票
   发表时间:2006-08-30  
昨天晚上搜他们的jira 就一无所获了,今天即使知道有2.2.3还是一无所获...
0 请登录后投票
   发表时间:2006-09-01  
我试了一下,是不行,还是自己写javascript吧。
0 请登录后投票
   发表时间:2006-09-05  
也是有变通的办法的. 只要你第一个list 别放map 就行. 我用list 来替代了, list 里面放一个自己的类,这个类类似map ,放key 和value 来达到map 的部分功能... 搞啊.
0 请登录后投票
   发表时间:2006-09-06  
嗯,webwork又更新了。
这次有个double select的bug被解决了。

不知道有无影响。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics