我有這個問題,我已動態生成的隱藏的輸入值,就像這樣:問題與JSP發佈與索引屬性的ArrayList到動作類
<div id="items-div" class="selection-div">
<input name="selectedItem[0].articleName" id="selectedItem" type="hidden" value="cereal"></input>
<input name="selectedItem[0].quantity" id="selectedItem" type="hidden" value="2"></input>
<input name="selectedItem[1].articleName" id="selectedItem" type="hidden" value="yogurt"></input>
<input name="selectedItem[1].quantity" id="selectedItem" type="hidden" value="10"></input>
</div>
我使用jQuery這些追加的項目-DIV取決於用戶在屏幕上選擇的內容,每一個都是一個Item。
public class Item {
private String articleName = "";
private int quantity = 0;
public String getArticleName() {
return articleName;
}
public void setArticleName(String articleName) {
this.articleName = articleName;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
這是具有這些項目
public class CreateArticleForm extends ActionForm {
private ArrayList<Item> selectedList = new ArrayList<Item>();
public Item getSelectedItem(int index) {
if (selectedList == null) {
selectedList = new ArrayList<Item>();
}
while (index >= selectedList.size()) {
selectedList.add(new Item());
}
return (Item) selectedList.get(index);
}
public ArrayList<Item> getSelectedList() {
return selectedList;
}
public void setSelectedList(ArrayList<Item> selectedList) {
this.selectedList = selectedList;
}
}
最後動作類的ArrayList窗體類
public class CreateArticleAction extends
Action {
public ActionForward executeAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response, User user)
throws Throwable {
CreateArticleForm articleForm = (CreateArticleForm) form;
//... do stuff
}
}
我預計在後所有的服務器將圓取出所有selectedItem [X]並調用getSelectedItem來構建數組列表並填充數組,然後將屬性設置爲每個對象,但是當我在調試時提交頁面時,我會看到selectedList arraylist co消除空虛。我正在使用這個基於前一個任務的邏輯,其中帶有索引屬性的信息是在第一次加載頁面時生成的,然後用logic:iterate標記打印,然後每個輸入都有一個indexed =「true」屬性,但是由於在這種情況下,它是從用戶點擊的頁面上,我反而用jquery填寫用戶選擇的「items-div」,但它應該是相同的?我錯過了什麼嗎?它以前運行得很好......謝謝你的時間。
編輯:上述工作,如果我硬編碼測試jsp頁面中的隱藏輸入,它會提交那些動態創建和附加jQuery的那些。
$('.items-div').append($('<input/>').attr({
type : 'hidden', name: 'selectedItem['+index+'].articleName', id : 'selectedItem', value: objItem.articleName}));
在您生成的代碼中,頁面上每個元素的ids應該是唯一的。此外,輸入標籤不具有單獨的關閉標籤。 – Bindrid
謝謝!我將刪除這些ID並查看是否這是使它無法正常工作的問題 至於輸入,我注意到這一點以及它給我帶來了困擾,因爲我使用下面的代碼來追加這些輸入,並且應該將它們發佈爲但是當我加載頁面,他們看起來像那樣... '$('。selection-div')。append($('').attr({' 'type:'hidden',名稱:'selectedItem ['+ index +']。articleName',id:'selectedItem',value:objItem.articleName}));' – Ricardo
沒有骰子,只在當前工作,如果我硬編碼的輸入,但不與附加jQuery ... – Ricardo