2011-11-02 49 views
2

我正在使用Struts2並試圖從系統填充數據到複選框列表, 在提交時,我發送了一個字符串數組,其中包含所選項目的「id」 [「8」, 「2」,「5」]如何使用struts2預填充複選框列表

但如果我預先使用相同的字符串數組填充該字段 - 什麼都不顯示勾選,我做錯了什麼?

的定義如下:

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

userroleslist包含含有的選項 id爲完整的清單是我用 值和所顯示的標籤描述字段(這所有的作品)名單 userroleresponse是返回作爲一個字符串數組[「8」,「2」,「5」]打勾和提交時,但是當預填充沒有滴答屏幕上的盒,

+0

[這](http://stackoverflow.com/questions/3602959/how-to-prepopulate-checkboxes-with-struts2-和-jquery)肯定會有所幫助,另見'html:multibox',[示例](http://www.java2s.com/Code/Java/J2EE/StrutsCreatingtheController.htm) –

+0

不是我真的已經這麼做了, –

+0

題外話,但我建議使用正常的「s」爲Struts 2標籤,以避免與S1混淆,特別是因爲很多S2標籤不發射HTML :) –

回答

3

使用value屬性來設置要打開的值。此外

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

,確保數據類型listKey的應與所提供的數值數組:在這裏,如果你有在簽名String [] getUserroleresponse()動作類的方法,如下更改標籤。例如,如果id的類型爲String,則值數組應爲String []

你可以參考下面的鏈接中的示例:

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

+0

試過,沒有工作,問題是我我將「2」「5」「8」放入字符串數組中這是提交時返回的內容,但它不勾選框,我是否需要添加描述? –

+0

什麼是bean屬性'id'的數據類型? –

+0

特蕾莎,我相信id屬性是String以外的東西。在這種情況下,您需要將id的數據類型更改爲String或將userroleresponse數組更改爲id類型的數組類型。我已經測試過這個,它適用於我。假設你的id屬性是int,那麼使userroleresponse是一個int數組。這一切,它會工作。乾杯! –