Spring mvc 如何在SpringMVC框架中进行对象列表映射
我有以下POJO类作为输入-Spring mvc 如何在SpringMVC框架中进行对象列表映射,spring-mvc,Spring Mvc,我有以下POJO类作为输入- public class Input implements java.io.Serializable { private String id; private List<Inputbenefit> Inputbenefits; //and getter and setter method } 在JSP中-我有5个固定的文本框来获取输入类的值- <spring:bind path="inputbenefits.benef
public class Input implements java.io.Serializable {
private String id;
private List<Inputbenefit> Inputbenefits;
//and getter and setter method
}
在JSP中-我有5个固定的文本框来获取输入类的值-
<spring:bind path="inputbenefits.benefitId">
<form:input path="${status.expression}" size="10" value="Manisha"/>
</spring:bind>
我没有从html表单获取到OutputForm的值,即无法读取控制器post方法OutputForm中的inputbenefits.benefitId
字段的值
简而言之,我的列表对象值没有传递给控制器方法
请帮忙。谢谢 您不应该从ConverRelation方法返回主机对象,而应该返回集合对象
@Override
protected Object convertElement(Object element) {
int benefitId = Integer.parseInt(element.toString());
return benefitService.getById(benefitId);
}
更新
我假设您试图将福利集合绑定到输入对象,您有一个表单来创建新的输入,并选择control来选择所需的福利。对吗?如果是真的,你需要这样的东西
使用表单弹簧标签
<form:select path="inputBenefits" items="${benefits}"
multiple="multiple" size="5" itemLabel="additionalAmt" itemValue="benefitId"/>
<form:errors path="inputBenefits"/>
这样,将为在页面选择控件上选择的每个值调用方法convertElement。在这之后,利益的集合将被推送到命令表单对象(我想是输入)
这里有一个简单的例子请以适当的格式发布您的问题,特别是代码。此外,您还没有提到您将遇到的错误:(嗨,Subkriti,我编辑了我的帖子。谢谢。嗨,Georgy,我想我们已经足够接近了。我在Inputbenefit.class{private java.lang.String wqBtId;private java.lang.String benefitId;private double additionalAmt;private boolean elected;}如何为此编写convertElement(对象元素)方法?
@Override
protected Object convertElement(Object element) {
int benefitId = Integer.parseInt(element.toString());
return benefitService.getById(benefitId);
}
<form:select path="inputBenefits" items="${benefits}"
multiple="multiple" size="5" itemLabel="additionalAmt" itemValue="benefitId"/>
<form:errors path="inputBenefits"/>
@InitBinder
public void initBinder(ServletRequestDataBinder binder) {
binder.registerCustomEditor(List.class, "inputBenefits", new CustomCollectionEditor(List.class) {
protected Object convertElement(Object element) {
if (element != null) {
Integer benefitId = Integer.parseInt(element.toString());
Benefit benefit = benefitService.getById(benefitId); // something that able to get benefit object
return benefit;
}
return null;
}
});
}