【问题标题】:How to prepopulate checkboxlist using struts2如何使用struts2预填充checkboxlist
【发布时间】:2011-12-20 02:47:15
【问题描述】:

我正在使用 Struts2 并尝试将系统中的数据填充到复选框列表中, 在提交时,我会收到一个字符串数组,其中包含所选项目的“id” ["8","2","5"]

但如果我预先使用相同的字符串数组预先填充该字段 - 没有任何标记,我做错了什么?

定义如下:

<html:checkboxlist list="userroleslist" listKey="id" listValue="description" name="userroleresponse" label="User Roles"/>

userroleslist 包含包含完整选项列表的列表 id 是我使用的值 和描述字段作为显示的标签(这一切都有效) userroleresponse 是一个字符串数组,在勾选并提交时返回为 ["8","2","5"],但当预填充时未勾选屏幕上的框,

【问题讨论】:

  • This 肯定会有所帮助,另见html:multibox,example
  • 不是我已经这样做了,
  • 离题,但我建议对 Struts 2 标签使用普通的“s”以避免与 S1 混淆,特别是因为很多 S2 标签不发出 HTML :)

标签: java hibernate spring jsp struts2


【解决方案1】:

使用value 属性设置要打开的值。在这里,如果您在动作类中有签名为String [] getUserroleresponse() 的方法,请按如下方式更改您的标签:

<html:checkboxlist list="userroleslist" listKey="id" listValue="description" name="userroleresponse" label="User Roles" value="userroleresponse"/>

此外,请确保 listKey 的数据类型应与提供的值数组匹配。例如,如果 idString 类型,则值数组应该是 String [] 类型。

您可以参考以下链接作为示例:

http://www.mkyong.com/struts2/struts-2-scheckboxlist-multiple-check-boxes-example/

【讨论】:

  • 试过了,没用,问题是我将“2”“5”“8”放入字符串数组,因为这是提交时返回的内容,但它没有勾选框我需要添加描述吗?
  • bean 属性 'id' 的数据类型是什么?
  • Theresa,我相信 id 属性不是字符串。在这种情况下,您需要将 id 的数据类型更改为 String 或将 userroleresponse 数组更改为 id 类型的数组。我已经对此进行了测试,它对我有用。假设如果您的 id 属性是 int,则让 userrolerresponse 成为一个 int 数组。就是这样,它将起作用。干杯!
  • James 谢谢你的工作,也许编辑你的答案,并指出角色响应需要与 listkey 的类型相同才能工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多