当前位置: 首页 > 知识库问答 >
问题:

spring表单jsp绑定引用bean

宋耀
2023-03-14

我试图使用Spring表单标签库绑定 POJO。绑定引用类 bean 变量后,我收到“错误请求错误 - http 状态 400”。

如果我删除引用类的绑定,则我的表单将成功提交,并且值也会填充在类中。

public class EmployeeTourPojo {

  private String empDisplayName;

  private List<TourDetailsPojo> tourDetails;

  //getter and setter

}

public class TourDetailsPojo {

    private Date departDate;

    private String departTime;

//getters and setters

}

JSP:

<td><form:input path="empDisplayName" class="form-control"/>    </td>

<form:input placeholder="Departure Date" path="tourDetails[${index}].departDate" required="required" class="datepicker form-control"/><br/>

我从几篇文章中获得了引用,但是当我在提交JSP之前添加行时,他们正在获取请求加载引用bean列表。

共有3个答案

花品
2023-03-14

我发现问题在于单击“添加行”后增加索引。因此,我添加了以下JQuery代码来增加索引。

$("#addRow").click(function(){
                    //alert("The button was clicked.");
                    var addressRow = $('.repeat-address').last();
                    var addressRowLength = $('.repeat-address').length;

                    var newAddressRow = addressRow.clone(true).find("input").val("").end(); 

                    $(newAddressRow).find("td input,td select").each(function(index,item) {
                        item.name = item.name.replace(/[0-9]/g,addressRowLength);
                    });

                    newAddressRow.insertAfter(addressRow);


                }); 

HTML代码

<c:set var="index" value="0"/>
                    <td><form:input path="empDisplayName" class="form-control"/>    </td>
                    <tr class="repeat-address">

                        <td>Departure Date</td>
                        <td><form:input placeholder="Departure Date" path="tourDetails[${index}].departDate" required="required" class="datepicker form-control"/></td>


                        <td>Pincode</td>
                        <td><input type="text" name="tourDetails[${index}].departDate"/></td>
                        <td><input type="file" name="tourDetails[${index}].tourTicket"/></td>
                    </tr>
                    <tr><td colspan="3"><input id="addRow" type="button" value="Add Row"></td></tr>

因为,我还需要将输入类型文件与POJO绑定。我还添加了一个多部分字段(在托德泰尔斯Pojo Bean中)作为

private Date departDate;

private Multipart tourTicket;

//getters and setters
黄飞翮
2023-03-14

如果我正确理解你的问题,这将有助于你

>

  • 检查你的表行

    这将转换

    …<代码>

    到这样的东西

    …<代码>

    创建生成的html模板

    var template='…

    请注意,我已经将< code>0替换为< code>{INDEX}

    单击<code>添加行</code>按钮,获得<code>的长度</code>

    generated_template追加到表中。

    希望这会有帮助…

  • 凌远
    2023-03-14

    使用JSTL标记库从列表中迭代数据。

    <c:forEach var="tourDetails" items="${tourDetails}" varStatus="status">
    <form:input placeholder="Departure Date" path="tourDetails[${status.index}].departDate" required="required" class="datepicker form-control"/><br/>
    </c:forEach>
    

    还要在 JSP 开始时添加下面的标签库。

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    
     类似资料:
    • 案例:我有一个组织对象。它有一个部门对象列表,每个部门都有一个员工对象列表。 在JSP中,我有一个复选框列表,它将复选框绑定到员工对象(深入2个层次结构。那就是组织- 如您所见: 装订很好。表单提交后,在controller中,我可以循环查看admin departmentList,查找创建的所有部门,并查找由于选中复选框而创建的员工。 问题:(部门是用空名称和非空雇员列表创建的。我找不到雇员列表

    • 我有一个web表单,可以更新appliaction.properties,这样用户就不必转到文件并编辑它。我想从application.properties文件中加载值并显示在web表单TextField中。在用户编辑一些更改后,用户可以更新application.properties文件。 问题-如何将web表单绑定到application.properties文件,而不是在Spring中使用@

    • 表单项: input, textarea, select 等. 使用v-model来绑定 输入项 <input v-model="my_value" style='width: 400px'/> 就可以在代码中获取到 this.my_value的值. 表单项的完整例子 <template> <div> input: <input type='text' v-model="input

    • 问题内容: 我是MVC3和Razor的新手,一旦从AJAX发布返回数据,就需要绑定/加载WebGrid的帮助。任何帮助将不胜感激(项目截止日期很快临近);) 我的情况是这样的:我有两个级联的下拉列表。第一个列表包含数据库中的区域。选择区域后,它将在第二个下拉列表中填充一系列设施。选择设施后,我需要使用建筑物列表填充WebGrid。我的级联下拉菜单正常工作 Index.cshtml: 这是我的AJA

    • 基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖,它负责监听用户的输入事件以更新数据,并特别处理一些极端的例子。 `v-model` 并不关心表单控件初始化所生成的值。因为它会选择 Vue 实例数据来作为具体的值。 文本 <input v-model="message" pl

    • 我从胸腺嘧啶开始。我只是复制了一个例子,并根据我的需要进行了调整。然而,它并不起作用。我很感激任何帮助。 标签 控制器 labelForm.html ...