浏览 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) 你的分析: 如果哪位用过这种方面来自动生成下拉框的值的,请告诉我方法,先谢过了。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-07-18
list="#scope.departmentMap"
scope可以是request或者session什么的 尝试下这样可以么 |
|
| 返回顶楼 | |
|
最后更新时间:2006-07-19
楼上的方法我试过了,不行,报错还是一样。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-07-19
第一种调用是对的。
但是你要确保departmentMap有值,不能为null |
|
| 返回顶楼 | |
|
最后更新时间:2006-07-20
问题很明显
首先你的departmentMap一定要是list等集合类型,其次你的list如你所述里放的全是map类型,那么使用ww:select标签你值需要用list="departmentMap"就行了,webwork会自动识别map类型,将key设为你的map中的key,将显示的value设为value显示值. 你再检查一遍是否符合上述要求. |
|
| 返回顶楼 | |
|
最后更新时间: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作为显示值。 原来是我有别的地方搞错了。 |
|
| 返回顶楼 | |





