我需要你的帮助,因为标题说我在从 jsp 表单中插入多行时遇到问题。该代码来自该站点的答案。
控制器
@ModelAttribute("programform")
public ProgramForm populatePojos() {
// Don't forget to initialize the pojos list or else it won't work
ProgramForm programform = new ProgramForm();
List<Programs> programs = new ArrayList<Programs>();
for(int i=0; i<2; i++) {
programs.add(new Programs());
}
programform.setPrograms(programs);
return programform;
}
@RequestMapping(value = "/createprog")
public ModelAndView tiles2(@ModelAttribute("programform") ProgramForm programform,
BindingResult result) {
//Map<String, Object> model = new HashMap<String, Object>();
//model.put("articles", articleService.listArticles());
return new ModelAndView("createprogram");
}
@RequestMapping(value = "/saveprogram", method = RequestMethod.POST)
public ModelAndView saveProgram(@ModelAttribute("programform") ProgramForm programform,
BindingResult result) {
for(Programs programs : programform.getPrograms()) {
System.out.println(programs.getProgram_id());
articleService.addProgram(programs);
}
jsp
<c:url var="saveProgramUrl" value="/articles/saveprogram.html" />
<form:form modelAttribute="programform" method="POST" action="${saveProgramUrl}">
<table>
<tr>
<th>ProgramId</th>
<th>Date</th>
<th>Type</th>
<th>Start</th>
<th>End</th>
<th>Location</th>
<th>User</th>
<th>Program Name</th>
</tr>
<tr>
<th><form:input path="programs[0].program_id" /></th>
<th> <form:input path="programs[0].date" id="datepick" class="date-pick"/>
<script type="text/javascript">
datepickr('datepick', { dateFormat: 'Y-m-d' });
</script></th>
<th><form:input path="programs[0].type" /></th>
<th><form:input path="programs[0].start" /></th>
<th><form:input path="programs[0].end" /></th>
<th><form:input path="programs[0].location" /></th>
<th><form:input path="programs[0].user_id" /></th>
<th><form:input path="programs[0].program_name" /></th>
</tr>
<tr>
<th><form:input path="programs[1].program_id" /></th>
<th> <form:input path="programs[1].date" id="datepick" class="date-pick"/>
<script type="text/javascript">
datepickr('datepick', { dateFormat: 'Y-m-d' });
</script></th>
<th><form:input path="programs[1].type" /></th>
<th><form:input path="programs[1].start" /></th>
<th><form:input path="programs[1].end" /></th>
<th><form:input path="programs[1].location" /></th>
<th><form:input path="programs[1].user_id" /></th>
<th><form:input path="programs[1].program_name" /></th>
</tr>
</table>
<br/>
<input type="submit" value="Insert User" />
</form:form>
程序
package net.roseindia.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "program")
public class Programs {
@Id
@Column(name = "Program_Id")
private int program_id;
@Column(name = "Date")
private String date;
@Column(name = "Duty_Type")
private String type;
@Column(name = "Duty_Start_Time")
private String start;
@Column(name = "Duty_End_Time")
private String end;
@Column(name = "Location")
private String location;
@Column(name = "User_Id")
private int user_id;
@Column(name = "Program_Name")
private String program_name;
public int getProgram_id() {
return program_id;
}
public void setProgram_id(int program_id) {
this.program_id = program_id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getProgram_name() {
return program_name;
}
public void setProgram_name(String program_name) {
this.program_name = program_name;
}
public Programs() {
}
}
节目表
package net.roseindia.model;
import java.util.List;
public class ProgramForm {
private List<Programs> programs;
public List<Programs> getPrograms() {
return programs;
}
public void setPrograms(List<Programs> programs) {
this.programs = programs;
}
}
当我按下按钮将其保存到数据库中没有插入任何内容的程序时,我做错了什么?