Java 如何以一种形式在两个Dropbox中传递两个列表
我试图将两个列表(学生和课程)从控制器传递到jsp文件。它应该是两个Dropbox,一个表单和一个提交按钮。现在我只能通过一个列表。我的想法是从一个下拉框中选择学生,从另一个下拉框中选择多个课程,然后提交注册。这是我的控制器,两个类:学生、课程和jsp文件。谢谢大家! 班级学生 } 注册控制器Java 如何以一种形式在两个Dropbox中传递两个列表,java,html,jsp,spring-mvc,Java,Html,Jsp,Spring Mvc,我试图将两个列表(学生和课程)从控制器传递到jsp文件。它应该是两个Dropbox,一个表单和一个提交按钮。现在我只能通过一个列表。我的想法是从一个下拉框中选择学生,从另一个下拉框中选择多个课程,然后提交注册。这是我的控制器,两个类:学生、课程和jsp文件。谢谢大家! 班级学生 } 注册控制器 @控制器 公共类注册控制器{ @自动连线 私人学生服务学生服务; @自动连线 私人课程服务; @请求映射(value=“/register”) 公共字符串显示寄存器(模型){ 学生=新生(); 课程=新课
@控制器
公共类注册控制器{
@自动连线
私人学生服务学生服务;
@自动连线
私人课程服务;
@请求映射(value=“/register”)
公共字符串显示寄存器(模型){
学生=新生();
课程=新课程();
model.addAttribute(“学生”,学生);
model.addAttribute(“课程”,课程);
List students=studentService.showallstustudents();
model.addAttribute(“学生”,学生);
列出课程=courseService.showAllCourses();
model.addAttribute(“课程”,课程);
返回“注册”;
} .
registration.jsp
弹簧MVC下拉框
选择学生
请选择:
.你可以创建另一个
你可以创建另一个当然,我先尝试了,但是我如何使用命令名
呢?如果我选择学生或课程,它会抛出异常。我相信我们使用命令名在控制器和视图之间传递一个对象。那么如何在这里传递两个对象呢?我想你不需要这样做使用commandName
谢谢@alayor,但是我需要在下拉框中查看这些列表,所以我需要将它们从控制器传递到jsp文件。如果我删除commandName
它会抛出一个异常。它抛出的是哪一个异常?java.lang.IllegalStateException:bean name命令既不是BindingResult也不是普通目标对象'可作为请求属性使用
,同样,我不希望将它们传递给控制器,而是希望将它们从控制器传递到视图表单
@Entity
@Table(name = "students")
public class Student {
@Id
@GeneratedValue
@Column(name = "STUDENT_ID")
private int studentId;
@Column(name = "name")
private String name;
@ManyToMany(cascade = CascadeType.ALL )
@JoinTable(name="STUDENT_COURSE", joinColumns={ @JoinColumn(name="STUDENT_ID")},
inverseJoinColumns = { @JoinColumn(name = "COURSE_ID") })
private Set<Course> courses = new HashSet<Course>();
public Student() {
}
public Student(String name) {
this.name = name;
}
public Student(String name, Set<Course> courses) {
this.name = name;
this.courses = courses;
}
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
'}';
}
@Entity
@Table(name = "courses")
public class Course {
@Id
@GeneratedValue
@Column(name = "COURSE_ID")
private int courseId;
@Column(name = "name")
private String courseName;
public Course() {
}
public Course(String courseName) {
this.courseName = courseName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public int getCourseId() {
return courseId;
}
public void setCourseId(int courseId) {
this.courseId = courseId;
}
@Override
public String toString() {
return "Course{" +
"courseName='" + courseName + '\'' +
'}';
}
@Controller
public class RegistrationController {
@Autowired
private StudentService studentService;
@Autowired
private CourseService courseService;
@RequestMapping(value = "/register")
public String showRegister(Model model){
Student student = new Student();
Course course = new Course();
model.addAttribute("student", student);
model.addAttribute("course", course);
List<Student> students = studentService.showAllStudents();
model.addAttribute("students", students);
List<Course> courses = courseService.showAllCourses();
model.addAttribute("courses", courses);
return "registration";
} .
<%@ taglib prefix="form"
uri="http://www.springframework.org/tags/form"%>
<html>
<title>Spring MVC dropdown box</title>
<h2>Select student</h2>
<form:form method="POST" action ="register" commandName="student">
<table>
<tr>
<td>Please select:</td>
<td><form:select path="name" >
<form:option value="" label="student" />
<form:options items="${students}" />
</form:select>
</td>
<td><form:errors path="name" cssStyle="color: #ff0000;" /></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form:form>