📅  最后修改于: 2023-12-03 14:47:34.123000             🧑  作者: Mango
在 Spring MVC 中,下拉列表是常见的表单元素之一。它允许用户从一组预定义的选项中进行选择,通常用于选择一个类别或者在另一个表单中引用一个实体。
本文介绍如何在 Spring MVC 中创建下拉列表。
在演示之前,需要确保 Spring,Spring MVC 和 JSTL 已经配置好并正常运行。如果您还没有这些工具,请阅读我的另一篇文章Sring MVC 的入门指南。
我们将创建一个简单的实体,表示一个人的性别。这个实体只有两个属性:id 和 name。
public class Gender {
private int id;
private String name;
public Gender(int id, String name) {
this.id = id;
this.name = name;
}
// Getters and setters
}
为了演示如何创建一个下拉列表,我们需要一些预定义的选项。在我们的示例中,我们将使用一个硬编码的列表。
private List<Gender> getGenderList() {
List<Gender> genderList = new ArrayList<>();
genderList.add(new Gender(1, "Male"));
genderList.add(new Gender(2, "Female"));
return genderList;
}
现在,我们已经有了生成下拉列表的数据,我们可以继续创建表单。
<form action="submitForm" method="POST">
<label for="gender">Gender:</label>
<select id="gender" name="gender">
<c:forEach items="${genderList}" var="gender">
<option value="${gender.id}">${gender.name}</option>
</c:forEach>
</select>
</form>
我们使用 select
元素创建下拉列表,并使用 options
元素添加要显示的选项。注意,我们设置了每个选项的值为该选项对应的性别 ID。
现在,我们已经创建了一个漂亮的下拉列表,我们需要处理表单提交。在我们的示例中,我们将创建一个简单的处理程序,它只是打印出提交的数据。
@PostMapping("/submitForm")
public String submitForm(@RequestParam("gender") int genderId) {
System.out.println("Selected gender ID: " + genderId);
return "redirect:/form";
}
@Controller
public class FormController {
@GetMapping("/form")
public String showForm(Model model) {
model.addAttribute("genderList", getGenderList());
return "form";
}
@PostMapping("/submitForm")
public String submitForm(@RequestParam("gender") int genderId) {
System.out.println("Selected gender ID: " + genderId);
return "redirect:/form";
}
private List<Gender> getGenderList() {
List<Gender> genderList = new ArrayList<>();
genderList.add(new Gender(1, "Male"));
genderList.add(new Gender(2, "Female"));
return genderList;
}
static class Gender {
private int id;
private String name;
public Gender(int id, String name) {
this.id = id;
this.name = name;
}
// Getters and setters
}
}
<form action="submitForm" method="POST">
<label for="gender">Gender:</label>
<select id="gender" name="gender">
<c:forEach items="${genderList}" var="gender">
<option value="${gender.id}">${gender.name}</option>
</c:forEach>
</select>
</form>
下拉列表是一个非常常见的表单元素,可用于在 Spring MVC 中选择预定义的选项。在本文中,我们演示了如何在 Spring MVC 中使用简单的硬编码选项创建下拉列表,并处理表单提交。