• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

I want to use indexed properties

 
surendar prabu
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please tell whether my bean and actionform are correct. the code is given below

code:

Bean code

public class BookBean {

private String author;
private String title;
private String available;
private int id;

public BookBean(int id,String author,String title,String available)
{
this.id=id;
this.author=author;
this.title=title;
this.available=available;
}

public void setId(int id)
{
this.id=id;
}

public int getId()
{
return id;
}

public void setAuthor(String author)
{
this.author=author;
}

public String getAuthor(){
return author;
}

public void setTitle(String title){
this.title=title;
}

public String getTitle()
{
return title;
}

public void setAvailable(String available)
{
this.available=available;
}

public String getAvailable()
{
return available;
}

public BookBean() {
}
}

ActionForm
public class BookForm extends org.apache.struts.action.ActionForm {

private List bookBean;

public void setBookBean(List bookBean)
{
this.bookBean=bookBean;
}
public List getBookBean(){
return bookBean;
}

public BookBean getBookBean(int index) {
return (BookBean)bookBean.get(index);
}
public void setBookBean(int index, BookBean bean) {
this.bookBean.set(index, bean);
}

/**
*
*/
public BookForm() {
super();
}
}

Please tell me whether all the getter, setter methods are correct and returning the correct type. i am confused with the indexed getter and setter methods.
 
Merrill Higginson
Ranch Hand
Posts: 4864
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Looks good. Here are a couple of suggestions.

The Commons Bean Utilities that are used by Struts don't always handle overloaded methods correctly. (Bug 28358) This bug is supposedly fixed in later releases, but I still don't trust it. I'd Make sure that your indexed getter and setter have a different name than the non-indexed ones. In this example, I'd suggest changing the name of the non-indexed accessors to getBookBeans and setBookBeans while leaving the indexed accessors as getBookBean and setBookBean.

If you plan to use this bean in request scope, I'd suggest you carefully read this link and follow the instructions for giving your List "lazy initialization" capability.
[ August 18, 2006: Message edited by: Merrill Higginson ]
 
surendar prabu
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Merill.

Once i have presented the response to the client, i will edit those indexed properties and make the next request.

my action will populate the bean as
BookForm bm=(BookForm)form;

now i want to retrieve those values. I will do this by
bm.getBookBeans(int index);

But how will i know the value for index? Is that i should set the index using bm.setBookBeans(int index,BookBean bean) when i provide the previous response.Who will set the index? in which page?

regards,
surendar prabu
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic