在本教程中,您将学习如何编写代码以显示从用户那里获取信息的表单,以及如何编写代码以在用户提交表单时获取表单数据。我将引导您开发一个 Spring Boot 应用程序,该应用程序向用户呈现以下表单:
如您所见,此表单包含几乎标准的 HTML 输入字段,如文本框、单选按钮、选择框(下拉列表)、复选框和文本区域——以及标签和提交按钮。
我们将使用带有 Spring MVC、Spring Form 标签和 JSP 的 Spring Boot。您可以使用任何 Java IDE,例如 Eclipse 或 Spring Tool Suite。
如果您是 Spring Boot 新手,我建议您先学习本教程。然后回到这个。
1.创建Spring Boot项目
您可以使用Spring Initializr 工具创建一个 Spring Boot 项目,然后将该项目导入 Eclipse IDE。如果您使用 Spring Tool Suite,则可以直接在 IDE中创建 Spring Boot 项目。无论如何,项目在pom.xml文件中必须有以下依赖信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
如您所见,这里我们使用 Spring Boot 2.2.4 和 Java 1.8。spring-boot-starter-web依赖项为在嵌入式 Tomcat 服务器上运行的Spring MVC Web 应用程序提供了默认配置。spring-boot-maven-plugin可以将我们的 Spring Boot 应用程序打包到 JAR/WAR 文件中。
并确保项目具有以下目录结构:
Spring MVC 应用程序的所有配置都是由 Spring Boot 在后台完成的。
提示: 使用 Spring Boot DevTools 进行自动重启 ,因此您不必在开发过程中手动重启应用程序。
2. 使用 Spring Boot 启用 JSP
要将 JSP (JavaServer Pages) 与 Spring Boot 一起使用,您必须在pom.xml文件中添加以下依赖项:
1 2 3 4 5 |
|
并在application.properties文件中配置 Spring MVC 解析器如下:
1 2 |
|
这意味着您必须将 JSP 文件放在项目中的此目录下:
src/main/webapp/WEB-INF/views
3.创建Spring MVC控制器类
使用以下初始代码创建一个名为MvcController的 Spring MVC 控制器类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
您可以看到处理程序方法home()将向应用程序的主页(上下文根 /)提供请求。它返回名为 index 的视图,该视图将被解析为/WEB-INF/views/index.jsp下的 JSP 文件。
4. 更新主页
接下来,使用以下 HTML 代码在src/main/webapp/WEB-INF/views目录下创建主页index.jsp :
1 2 3 4 5 6 7 8 9 10 11 12 |
|
运行 Spring Boot 应用程序,并在 localhost 访问 Web 应用程序,您将看到如下所示的主页:
当用户单击超链接时,将显示用户注册表单。
5. 代码域模型类
在注册表单中创建代表用户详细信息的 User r类,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
请注意,为简洁起见,未显示 getter 和 setter 方法。您还应该覆盖返回用户所有详细信息的toString()方法。
6.代码展示表单处理方法
当用户点击主页中的超链接时,为了处理应用程序的请求,在控制器类中添加以下方法:
1 2 3 4 5 6 7 8 9 |
|
使用以下导入语句:
1 2 3 4 5 |
|
当用户单击主页中的超链接/register时,将调用showForm()处理程序方法。它创建两个对象并将其添加到模型中:
-用于捕获表单上字段值的用户对象。
-显示表单上下拉列表(选择框)值的职业列表。
然后它返回视图名称register_form - 它将被解析为接下来描述的 JSP 文件。
7.代码Spring MVC表单页面
要向用户显示用户注册表单,请使用以下代码在/WEB-INF/views下创建register_form.jsp文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
我们使用 Spring 表单标签将模型中的对象与表单中的字段进行映射,因此需要在文件开头声明以下指令:
1 |
|
然后我们使用<form:form>标签来创建一个表单:
1 |
|
在这里,请注意modelAttribute 属性,该属性指定映射到此表单的模型中对象的名称。还记得showForm()方法中的用户对象吗?
然后对于每个表单字段,我们使用 Spring 表单标签作为标签和字段:
1 2 |
|
请注意,路径属性的值必须引用模型对象中的字段。
要格式化表单,请将以下 CSS 样式添加到页面的 head 部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
运行时,表单如下图所示:
8.代码表单提交处理方法
要在用户单击表单上的注册按钮时处理表单提交,请将以下方法添加到控制器类:
1 2 3 4 5 6 7 |
|
使用以下导入语句:
1 2 |
|
如您所见,表单的方法是 post,因此@PostMapping 注解用于处理程序方法来处理 HTTP POST 请求。
请注意,@ModelAttribute注释用于方法参数User user - 因此 Spring 将知道读取表单上的字段值并将它们设置为模型对象的字段。我们不必编写一行代码来获取表单数据——只需使用模型对象!
submitForm()方法简单地将用户对象的详细信息打印到控制台,并返回名为register_success的视图,该视图解析到下面描述的 JSP 页面。
9.代码结果页面
最后,使用以下代码创建register_success.jsp文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
该页面简单地使用了 JSP 的表达式语言(EL)来显示用户提交的表单信息,如下图所示:
那是关于在 Spring Boot 中使用 Spring 表单标签和 JSP 处理表单的教程。您可以下载下面附加的示例项目。
要验证用户对表单的输入,请参阅 Spring Boot 表单验证教程。
ava 程序员(SCJP 和 SCWCD)。他从 Java 1.4 开始使用 Java 编程,从那时起就爱上了 Java。在Facebook 上与他交朋友,观看Spring Boot 表单验证教程。
SpringBootFormHandling.zip | 【Spring Boot Form示例项目】 | 69 KB |
添加评论