2012-04-01 57 views
0

這裏是我的收音機與迭代如何單選按鈕選擇對象傳遞給Struts2的行動

<form action="<s:url action="s/postCreation"/>" method="post"> 
    <s:iterator value="categories"> 
     <s:radio name="myCategory" list="{Category}" listKey="DBId" listValue="title"/><br/> 
    </s:iterator> 
<s:submit>submit</s:submit> 

其中categories是在我的Struts Action類的屬性:(已轉發我這個jsp頁面):

listKeylistValue包含我Category類的值是:

public class Category { 

    private static final long serialVersionUID = 1L; 
    private static Logger logger = Logger.getLogger(Category.class); 
    private long DBId; 
    private String title; 

} 

現在我希望能夠發送所選類別對象(而不僅僅是DBID值)postCreation struts2的動作類,並將其存儲在一個名爲

private Category myCategory; 

回答

-1
<form action="yourActionName" method="post" namespace="/ifYouWantChangeNamespace"> 
+0

那是什麼名字空間?你可以解釋一下它有點plz – MoienGK 2012-04-01 13:10:11

+0

它沒有發佈的對象,它張貼的ID只有 – MoienGK 2012-04-01 13:29:05

+0

我不明白你在這裏做什麼動作=「」。方法=發佈後不需要默認方法。名稱空間 - 如果您調用動作在另一個名稱空間中,您可以在此處指定。 – 2012-04-01 17:05:41

1

不容易變通的屬性。

我會用一點JavaScript解決這個問題。在你的<form>....</form>裏面,我會寫:

<s:hidden name="myCategory.title" id="hiddenTilteProperty" /> 
<s:iterator value="Category"> 
    <input type="radio" 
     onClick="document.getElementById('hiddenTilteProperty').value = '<s:property value="title" />';" 
     name="myCategory.DBId" 
     value='<s:property value="DBId" />' 
    /> 
<s:property value="title" /> <!-- This will act as label --> 
<br/> 
</s:iterator> 
+0

humm。讓我測試一下,然後回到你身邊。日Thnx – MoienGK 2012-04-02 11:21:26