2014-01-23 40 views
4

我是Struts的新手,我需要使用<s:radio within a displaytag table的幫助。在displaytag中使用Struts2無線電

我的displaytag表中的一列有一個「是」和「否」的廣播組。此值(是或否)將從數據庫中預選,但用戶可以更改這些值並提交表單。爲此,我使用以下代碼:

<display:table name="mmiq" pagesize="-1" requestURI="" uid="mmiq"> 
... 
... 
<display:column title="Response"> 
    <s:radio theme="simple" name="mmiq_%{#attr.mmiq_rowNum - 1}"  
      list="#attr.mmiq.response" value="#attr.mmiq.selectedResponse" /> 
</display:column> 

</display:table> 

此顯示錶的支持列表爲mmiq<RowData>。 Bean RowData有一個ArrayList<String> response,在構造函數中填充了兩個值「是」和「否」。 RowData bean中的方法getSelectedResponse從數據庫中返回該bean的預選值。

表格顯示正常,並且從DB中返回預選值。

但是,當數據要提交回操作類時,我不知道如何捕獲無線電框的更改值。目前,提交時,我得到一個錯誤(顯示錶中的每一行):No object in the CompoundRoot has a publicly accessible property named 'mmiq_9' (no setter could be found).

任何人都可以幫助我瞭解我在這裏做錯了什麼,以及如何解決這個問題?任何幫助將不勝感激!

回答

1

嘗試用

<s:radio theme = "simple" 
      name = "mySelectedValue[%{#attr.mmiq_rowNum - 1}]" 
      list = "#attr.mmiq.response" 
     value = "#attr.mmiq.selectedResponse" /> 

,並在行動中

private List<String> mySelectedValue; 

其二傳手。

+1

非常感謝!這解決了這個問題。 – user3226180

+0

很高興幫助,如果你喜歡它,隨時提供答案 –