论坛首页 Java版 Webwork

『出错』ww中的<ww:select/>标签问题

浏览 1841 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2006-07-18
软件环境:
我想用把model中的一个Map对象,映射到页面的

<ww:select name="department" list="departmentMap" />

Map的value作为下拉框的值,Map的key作为下拉框的内容,可是报错,我查看了webwork2.2的官方文档,上面的确写明有这种用法的。后来,我改为

<ww:select name="department"  list="departmentMap" listKey="key" listValue="value" />


还是不行,报错内容都是一样的。

配置文件:


错误提示信息:
500 Servlet Exception
java.lang.RuntimeException: tag radio, field list: You must specify a collection/array/map/enumeration/iterator.
Example: people or people.{name}
at com.opensymphony.webwork.components.Component.fieldError(Component.java:206)
at com.opensymphony.webwork.components.Component.findValue(Component.java:269)
at com.opensymphony.webwork.components.ListUIBean.evaluateExtraParams(ListUIBean.java:50)
at com.opensymphony.webwork.components.UIBean.evaluateParams(UIBean.java:885)
at com.opensymphony.webwork.components.UIBean.end(UIBean.java:588)
at com.opensymphony.webwork.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:21)
at _jsp._employee_0list__jsp._jspService(employee_list.jsp:56)


你的分析:
如果哪位用过这种方面来自动生成下拉框的值的,请告诉我方法,先谢过了。
   
最后更新时间:2006-07-18
list="#scope.departmentMap"
scope可以是request或者session什么的
尝试下这样可以么
   
0 请登录后投票
最后更新时间:2006-07-19
楼上的方法我试过了,不行,报错还是一样。
   
0 请登录后投票
最后更新时间:2006-07-19
第一种调用是对的。
但是你要确保departmentMap有值,不能为null
   
0 请登录后投票
最后更新时间:2006-07-20
问题很明显
首先你的departmentMap一定要是list等集合类型,其次你的list如你所述里放的全是map类型,那么使用ww:select标签你值需要用list="departmentMap"就行了,webwork会自动识别map类型,将key设为你的map中的key,将显示的value设为value显示值.

你再检查一遍是否符合上述要求.
   
0 请登录后投票
最后更新时间:2006-07-20
谢谢楼上的各位,我现在搞定了,原来用List或Map都可以的。

用List的话,List上放一个bean,里面设个key和value属性,然后页面上这样写:

<ww:select name="department" list="departmentList" listKey="key" listValue="value" />

如果用Map的话,就这样可以了。

<ww:select name="department" list="departmentMap"/>

标签会自动搞Map的key赋给下拉框的value,把Map的value作为显示值。

原来是我有别的地方搞错了。
   
0 请登录后投票
论坛首页 Java版 Webwork

跳转论坛:
JavaEye推荐