0
我在使用struts 2中的類型轉換來轉換bean的集合時遇到了麻煩。 我下面的動作類:struts 2集合類型轉換問題
@Validation()
@Conversion()
public class HelloWorldAction extends ActionSupport {
private List<HelloBean> helloBeans = new ArrayList<HelloBean>();
public String execute() throws Exception {
System.out.println(helloBeans);
return SUCCESS;
}
public List<HelloBean> getHelloBeans() {
return helloBeans;
}
@TypeConversion(rule = ConversionRule.COLLECTION, converter = "foo.HelloBean")
public void setHelloBeans(List<HelloBean> helloBeans) {
this.helloBeans = helloBeans;
}
}
和我的bean類:
public class HelloBean {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
和我的JSP文件:
<s:form action="helloWorld">
<s:textfield name="helloBeans.name" label="name1"/>
<s:textfield name="helloBeans.name" label="name2" />
<s:textfield name="helloBeans.age" label="age1"/>
<s:textfield name="helloBeans.age" label="age2"/>
<s:submit />
</s:form>
當過程已經提交,支柱總是給我4對象,而不是內部集合中的2個對象。我知道使用索引屬性中的其他解決方法將解決問題,但對於我的情況,我需要收集是動態的。有辦法解決這類問題嗎?
我已經試過別人的註釋以及:
@Element(value =foo.HelloBean.class)
@CreateIfNull(value = true)
@KeyProperty(value = "name")
private List<HelloBean> helloBeans = new ArrayList<HelloBean>();
但這些都不曾
僅供參考:您無需在您的操作中初始化helloBeans。你的二傳手會做到這一點。 – 2010-12-12 16:45:45