2014-04-01 75 views
-1

我想迭代ArrayList元素並更新列表元素,然後保存它。Struts 1.2 - 顯示和更新ArrayList項目

My Form Bean: 
MyTestCodeForm.java - it have two members id and ArrayList. 
String id; 
ArrayList<Book> listBook; 

getter和setter id屬性的 getter和ArrayList中的

public void setListBook(ArrayList<Book> bookList) 
{ 
    this.listBook = bookList; 
} 

public ArrayList<Book> getListBook() 
{ 
    return this.listBook; 
} 

Book.java have two members 
String bookId; 
String bookName; 


Action class - MyTestCodeAction.java 

制定者在這方面,我有獲取數據並保存到數據庫中。對於迭代

我的jsp頁面:

<nested:nest property='myTestCodeForm'> 
<html:form action='/myTestCodeForm'> 

<nested:write name='' property='id'/> 
<html:hidden name='' property='id'/> 
<nested:iterate id='foo' name='' property='bookList'> 

    <html:text name='foo' property='bookName' indexd='true'/> 

</nested:iterate> 
<html:submit value='submit'/> 

</html:form> 

</nested:nest> 

我的問題是,我成功地重複數據,但是當我得到的數據轉化爲動作類我沒有收到數組列表數據,但我收到的id屬性。

請幫忙

+0

Abhijeet,你能告訴我目標類的代碼,其中bean值將被設置,還有struts-config.xml,我想你不是正確配置模型屬性。 –

+0

感謝您的回覆,但我得到了我的解決方案。見解決方案。 –

回答

0

我得到了解決方案,我錯過了FormBean類。在我使用FormBean Class之前,有一個獲取ArrayList元素的getter和一個設置ArrayList元素的setter,但是我沒有爲Book類創建getter和setter,爲Book類創建getter和setter後,我得到了Action類中的值。現在,My Form Bean看起來像這樣:

public void setListBook(ArrayList<Book> bookList) 
{ 
    this.listBook = bookList; 
} 

public ArrayList<Book> getListBook() 
{ 
    return this.listBook; 
} 
public Book getBook(int index) 
{ 
    if(index >= index) 
    { 
    this.listBook.add(new Book()); 
    } 

    return (Book)this.listBook.get(index); 
} 
public Book setBook(int index, Book book) 
{ 
    return this.listBook.set(index, book); 
}