Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 如何在SpringMVC框架中进行对象列表映射_Spring Mvc - Fatal编程技术网

Spring mvc 如何在SpringMVC框架中进行对象列表映射

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

我有以下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.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;
            }

        });

    }