struts2中hashset的设置值

问题描述:

我正在使用Struts2。我在pojo中有一个hashset。我正在尝试将值提交给哈希集。我无法将收藏类型更改为列表。struts2中hashset的设置值

这里是POJO

Item{ 
Set<Person> personCollection; 
long itemCode; 

    public void setItemCode(long itemCode) 
    { 
     this.itemCode=itemCode; 
    } 
    public long getitemCode() 
    { 
     return itemCode; 
    } 
    public void setPersonCollection(Set<Person>personCollection) 
    { 
     this.personCollection=personCollection; 
    } 
    public Set<Person> getPersonCollection() 
    { 
     return personCollection; 
    } 
} 

Person{ 
    String name; 
    public void setName(String name) 
    { 
     this.name=name; 
    } 
    public String getName() 
    { 
     return name; 
    } 
} 

行动

SubmitItemAction 
{ 
    private Item item; 
    public getItem() 
    { 
      return item; 
    } 
    public setItem(Item item) 
    { 
      this.item=item; 
    } 
    public String submitItem() 
    { 
      dao.submit(item); 
    } 
} 

JSP

<s:text name=item.personCollection[0].name/> 
    <s:text name=item.personCollection[1].name/> 

所以这行不通。当我用上面的代码片断提交我的jsp时,它会给出错误,它无法从Item中填充personCollection。

那么应该在jsp中命名约定。就像personCollection会成为我可以使用的列表item.personCollection[0].someProperty一样。但是,你如何为类型集的集合设置名称。

+0

你的问题是什么? – mprabhat

+0

需要更多解释。 –

+0

更新了问题 – kunal

那么在你的提交动作中使用列表,然后你可以在jsp中使用这个列表与索引。

您不能使用此设置为集不能使用索引

在你的业务逻辑访问列表转换成设为您可能需要进一步ORM设置。

+0

这看起来不错。但我正在寻找更通用的解决方案。由于可能有多个集合正在使用POJO的实例。谢谢回复。 – kunal

+0

那你是对的。可以尝试使用struts的迭代器标签。就我个人而言,我没有这么做,只需要几个地方就可以这么做。如果您获得任何成功,请更新您的答案。 –

+0

我在jsp中使用迭代器标记。当然,如果更好的解决方案能够解决,我会更新这篇文章。 – kunal