浏览 3668 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-08-30
<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 的时候没法使用, 不知道大家遇到这种情况没有. 有什么解决办法. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-08-30
iterator是独立实例的话,两个iterator并不会相互干扰的。
楼主先拿纯java试验一下就知道了。 另外楼主是说webwork的例子不能运行还是类似的,你的实现不能运行? webwork.2.2.3出了,更新下吧。bug fix release. |
|
返回顶楼 | |
发表时间:2006-08-30
两次调用parameters.list 返回的是同一个实例.
java.util.LinkedHashMap$EntryIterator@151cc3 所以第二次iterate 不行了. 2.2.2 还说是最后一个版本呢,,, 赶紧看看bug fix 去. |
|
返回顶楼 | |
发表时间:2006-08-30
昨天晚上搜他们的jira 就一无所获了,今天即使知道有2.2.3还是一无所获...
|
|
返回顶楼 | |
发表时间:2006-09-01
我试了一下,是不行,还是自己写javascript吧。
|
|
返回顶楼 | |
发表时间:2006-09-05
也是有变通的办法的. 只要你第一个list 别放map 就行. 我用list 来替代了, list 里面放一个自己的类,这个类类似map ,放key 和value 来达到map 的部分功能... 搞啊.
|
|
返回顶楼 | |
发表时间:2006-09-06
嗯,webwork又更新了。
这次有个double select的bug被解决了。 不知道有无影响。 |
|
返回顶楼 | |