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 の配列リストに値がありません。

方法はありますか?私はstruts 1.3を使用しています(プロジェクトが非常に昔から始まっていて、私はチームの新しいメンバーであるため、残念ながら更新できません)。

ありがとう。

サージット

4

2 に答える 2

2

フォームオブジェクトでに変更ArrayListしてみてください。String[]

于 2012-10-15T12:57:49.447 に答える
0

これで問題が解決するかどうかはわかりませんが、オプションの1つだけを選択したい場合の回答によると、html:selectのプロパティはArraylistではなくStringオブジェクトである必要があります。したがって、HTML は次のようになります。

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

そして、フォームには次の変数が必要です (それぞれのゲッターとセッターを使用):

private ArrayList<String> chargeIds;
private String selectedChargeId;

それはいつも私のために働きます、私はそれがあなたの問題を解決することを願っています.

于 2012-10-17T07:08:15.640 に答える