spring-mvc - 如何通过spring-mvc表单绑定我的dto中存在的对象
问题描述
我有我的 DTO 类 RegisteredTrainee,它与类 DemoInfo 有关联,这意味着我的 DTO 包含一个 DemoInfo 对象我成功绑定了我的 bean,但无法理解何时创建 DemoInfo 对象以及何时调用我的 DTO getDemoInfo( ) 它显示为空。请帮助我了解发生了什么。
我还尝试@requestparam 手动获取该 demoInfo 对象的值,但它显示表单没有名为 demoInfo.demoTime 的属性,并且名称在我的 springform 输入路径中完全相同
这是我的控制器
@RequestMapping("/demoTrainee")
public ModelAndView generateDemoSlip(RegisteredTrainee regDemoInfo) {
System.out.println(regDemoInfo.getRegisterationId() + " >>");
System.out.println(regDemoInfo.getDemoInfo() + " >>");
boolean bool = TraineeService.demoTrainee(regDemoInfo);
if (bool)
return new ModelAndView("enquirytaker/traineeregisteration/registeration/trainee-registeration","trainee",new RegisteredTrainee());
return null;
}
这是DTO
package org.mz.trainee.beans;
import java.util.ArrayList;
import java.util.Date;
import org.mz.ptp.beans.User;
public class RegisteredTrainee extends User {
private String registerationId;
private Date registerationDate;
private String enquiryTaker;
private DemoInfo demoInfo;
private ArrayList<EnrollInfo> enrollInfoList;
public RegisteredTrainee() {
super();
// TODO Auto-generated constructor stub
}
public String getRegisterationId() {
return registerationId;
}
public void setRegisterationId(String registerationId) {
this.registerationId = registerationId;
}
public Date getRegisterationDate() {
return registerationDate;
}
public void setRegisterationDate(Date registerationDate) {
this.registerationDate = registerationDate;
}
public String getEnquiryTaker() {
return enquiryTaker;
}
public void setEnquiryTaker(String enquiryTaker) {
this.enquiryTaker = enquiryTaker;
}
public DemoInfo getDemoInfo() {
demoInfo = new DemoInfo();
return demoInfo;
}
public void setDemoInfo(DemoInfo demoInfo) {
demoInfo = new DemoInfo();
this.demoInfo = demoInfo;
}
public ArrayList<EnrollInfo> getEnrollInfoList() {
return enrollInfoList;
}
public void setEnrollInfoList(ArrayList<EnrollInfo> enrollInfoList) {
this.enrollInfoList = enrollInfoList;
}
}
这是弹簧形式,即jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Demo Trainee Form</h1>
<form:form method="POST" action="demoTrainee" modelAttribute="regDemoInfo">
<table>
<tr>
<td><form:label path="registerationId">RegId</form:label></td>
<td><form:input path="registerationId" /></td>
</tr>
<tr>
<td><form:label path="userName">Name</form:label></td>
<td><form:input path="userName" /></td>
</tr>
<tr>
<td><form:label path="email">Email</form:label></td>
<td><form:input path="email" /></td>
</tr>
<tr>
<td><form:label path="gender">Gender</form:label></td>
<td><form:input path="gender" /></td>
</tr>
<tr>
<td><form:label path="phone"> Contact Number</form:label></td>
<td><form:input path="phone" /></td>
</tr>
<tr>
<td><form:label path="${demoInfo.demoTime}">Demo Time</form:label></td>
<td><form:input path="${demoInfo.demoTime}" /></td>
</tr>
<tr>
<td><form:label path="${demoInfo.demoDate}">Demo Date</form:label></td>
<td><form:input path="${demoInfo.demoDate}" /></td>
</tr>
<tr>
<td><form:label path="${demoInfo.trainer}">Trainer</form:label></td>
<td><form:input path="${demoInfo.trainer}" /></td>
</tr>
<tr>
<td><form:label path="${demoInfo.training}">Training</form:label></td>
<td><form:input path="${demoInfo.training}" /></td>
</tr>
<tr>
<td><form:label path="${demoInfo.enquiryTaker}">Enquiry Taker</form:label></td>
<td><form:input path="${demoInfo.enquiryTaker}" /></td>
</tr>
<tr>
<td><input type="submit" value="Generate Demo Slip" /></td>
</tr>
</table>
</form:form>
解决方案
请删除${}
.
<tr>
<td><form:label path="demoInfo.trainer">Trainer</form:label></td>
<td><form:input path="demoInfo.trainer" /></td>
</tr>
推荐阅读
- angular - mat-chip-list 中的 Angular Material ngFor - 如何防止换行?
- javascript - 在 HTML5 Canvas 游戏中更改精灵的黑色像素颜色
- python - 如何在不手动设置 FLASK_APP 的情况下通过烧瓶运行或自定义命令运行 Flask 应用程序
- django - 从父级保存相关的子模型字段 - Django
- laravel - Laravel 与表的关系
- php - Timber Twig:按类别查询自定义帖子类型并输出帖子的简码
- airflow - 如何使用 xcom 变量获取任务输出?
- python - 卷积神经网络 (CNN) 可以用数学公式表示吗?
- javascript - 从数组上传文件
- javascript - Cloud Functions 实时数据库触发器中的未定义类型