📅  最后修改于: 2023-12-03 14:47:33.715000             🧑  作者: Mango
在Spring MVC中,复选框是一种非常常用的组件,它可以让用户从多个选项中选择一个或多个。本示例将演示如何在Spring MVC中使用复选框组件。
首先,我们需要定义一个实体类来表示复选框中的选项。在本示例中,我们定义了一个ProgrammingLanguage
类,此类包含两个属性:name
和id
。
public class ProgrammingLanguage {
private int id;
private String name;
// 构造方法与getter/setter略
}
然后,我们需要编写一个表单页面来显示复选框。在本示例中,我们定义了一个form.jsp
页面,此页面包含一个表单和一个复选框组件。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Spring MVC Checkbox Example</title>
</head>
<body>
<h2>Spring MVC Checkbox Example</h2>
<form:form method="post" modelAttribute="formBean">
<table>
<tr>
<td>Select languages:</td>
<td>
<form:checkboxes items="${languages}" path="selectedLanguages"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form:form>
</body>
</html>
在此页面中,我们使用了Spring的标签库form:
来生成表单和复选框组件。items
属性是复选框的选项,path
属性是用于绑定复选框值的表达式。
最后,我们需要编写一个控制器来处理表单提交。在本示例中,我们定义了一个FormController
控制器,此控制器包含两个方法:showForm()
和processForm()
。
@Controller
@RequestMapping("/form")
public class FormController {
private static List<ProgrammingLanguage> languages = Arrays.asList(
new ProgrammingLanguage(1, "Java"),
new ProgrammingLanguage(2, "C#"),
new ProgrammingLanguage(3, "Python"),
new ProgrammingLanguage(4, "PHP")
);
@GetMapping
public String showForm(Model model) {
model.addAttribute("languages", languages);
model.addAttribute("formBean", new FormBean());
return "form";
}
@PostMapping
public String processForm(@ModelAttribute("formBean") FormBean formBean) {
List<ProgrammingLanguage> selectedLanguages = new ArrayList<ProgrammingLanguage>();
for (int id : formBean.getSelectedLanguages()) {
ProgrammingLanguage language = languages.stream()
.filter(l -> l.getId() == id)
.findFirst().get();
selectedLanguages.add(language);
}
System.out.println("Selected languages: " + selectedLanguages);
return "redirect:/form";
}
}
在此控制器中,我们定义了一个静态列表来存储可选的编程语言。showForm()
方法用于显示表单页面,并向模型中添加可选的编程语言和一个空的表单模型。processForm()
方法用于处理表单提交,它从表单模型中取得用户选择的编程语言列表,并打印出选中的编程语言。
mvn spring-boot:run
。http://localhost:8080/form
,即可看到表单页面。本示例介绍了如何在Spring MVC中使用复选框组件,并通过一个示例让开发者了解如何编写控制器从表单中取得复选框值。开发者可以根据自己的业务需求,修改本示例代码,以满足自己的需求。