4

我的 ActionForm 有以下字段。

//form
private ArrayList<String> chargeIds = new ArrayList<String>();  
public ArrayList<String> getChargeIds() {  
    return chargeIds;  
}  
public void setChargeIds(ArrayList<String> chargeIds) {  
    this.chargeIds = chargeIds;  
}//form

在我的jsp中,我写了如下: -

//jsp
.... 

    <html:form action="/PurchaseOrderAction" styleId="defaultForm">
    <table> 
    <logic:iterate id="element" name="<%= Constants.SHOPPING_ORDER_CART_ITEMS %>" type="mypackage.ItemBean" >
    <tr><td>
     <logic:Equal name="element" property="promotedItem" value="true">
           <html:select property="chargeIds" styleClass="transperentList" indexed="true">
               <html:options collection="<%=Constants.ALL_CHARGES %>" property="key" labelProperty="name" />
        </html:select>
      </logic:Equal>
    <logic:notEqual name="element" property="promotedItem" value="true">
      <bean:write name="element" property="chargeName"/>
    </logic:notEqual>
    </tr></td>

.....
//jsp

我正在正确填充jsp...但是当我提交表单时..我在formbean的arraylist中没有得到任何值。

知道怎么做吗?我正在使用 struts 1.3(不幸的是无法更新,因为该项目很久以前就开始了,我是团队的新成员)。

谢谢。

萨尔吉特

4

2 回答 2

2

尝试在您的表单对象中更改ArrayList为。String[]

于 2012-10-15T12:57:49.447 回答
0

我不知道这是否会解决您的问题,但是根据您的回答,如果您只想选择其中一个选项,则 html:select 的属性应该是 String 对象而不是 Arraylist。所以你的 HTML 应该是这样的:

<html:select property="selectedChargeId" styleClass="transperentList" indexed="true">
    <html:options collection="chargeIds" property="key" labelProperty="name" />
</html:select>

然后你的表单应该有这些变量(以及它们各自的 getter 和 setter):

private ArrayList<String> chargeIds;
private String selectedChargeId;

它总是对我有用,我希望它能解决你的问题。

于 2012-10-17T07:08:15.640 回答