繁体   English   中英

在Spring MVC中动态添加表单元素

[英]Adding form elements dynamically in spring mvc

我无法以ajax方式加载表单元素。

ResourcePipeline.jsp:

    <head>
        $(document).ready(function() {
            var resourcePosition = 0;
            $('#addResourceButton').click(function() {
                resourcePosition++;
         alert(resourcePosition);
                $.get("appendResourceView.page", { fieldId: resourcePosition},
                    function(data){
                        $('#submitRow').before(data);
                        alert(resourcePosition+ "after sending the url");
                });
            });
        });
    </head>

<body>
 <input type="button" id="addResourceButton" value="+" />
</body>

我的控制器:

@RequestMapping(method = RequestMethod.GET, value="/appendResourceView.page")
protected String appendResourceField(@RequestParam Integer fieldId, ModelMap model )
{   
    List<Resource> resources = new ArrayList<Resource>();
    Resource resource = new Resource();
    resources.add(resource);        
    Demand demand = new Demand();   
    demand.setResources(resources);

    Map map = new HashMap();        

    map.put("demand", demand);      



    model.addAttribute("resourceNumber", fieldId);
    model.addAttribute("map", map);



    return "resourceInsert.view";
}

jsp是通过AJAX调用

resourceInsert.jsp:

<c:set var="resourceForDemand" value="${map.demand}"></c:set>

 <form:input type="text" class="dater"  path="resourceForDemand.resources[${resourceNumber}].need_From_Date" required="true" />

当我尝试触发AJAX部分时,我收到“ BeanResult'resourceForDemand'的BindingResult或普通目标对象都不能用作请求属性”作为错误。 需要帮忙。 提前致谢。

Spring正在寻找一个名为resourceForDemand的模型对象,但找不到。 您是否有任何理由在ModelMap使用嵌套地图? 最好对控制器方法进行较小的重构,然后直接在模型中公开Demand对象:

@RequestMapping(method = RequestMethod.GET, value="/appendResourceView.page")
protected String appendResourceField(@RequestParam Integer fieldId, ModelMap model )
{   
    List<Resource> resources = new ArrayList<Resource>();
    Resource resource = new Resource();
    resources.add(resource);        
    Demand demand = new Demand();   
    demand.setResources(resources);


    model.addAttribute("resourceNumber", fieldId);
    model.addAttribute("resourceForDemand", demand);



    return "resourceInsert.view";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM