2012-04-01 53 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