返回介绍

5.4 处理表单

发布于 2024-08-17 00:45:50 字数 1806 浏览 0 评论 0 收藏 0

Web应用的功能通常并不局限于为用户推送内容。大多数的应用允许用户填充表单并将数据提交回应用中,通过这种方式实现与用户的交互。像提供内容一样,Spring MVC的控制器也为表单处理提供了良好的支持。

使用表单分为两个方面:展现表单以及处理用户通过表单提交的数据。在Spittr应用中,我们需要有个表单让新用户进行注册。SpitterController是一个新的控制器,目前只有一个请求处理的方法来展现注册表单。

程序清单5.13 SpitterController:展现一个表单,允许用户注册该应用

showRegistrationForm()方法的@RequestMapping注解以及类级别上的@RequestMapping注解组合起来,声明了这个方法要处理的是针对“/spitter/register”的GET请求。这是一个简单的方法,没有任何输入并且只是返回名为registerForm的逻辑视图。按照我们配置InternalResourceViewResolver的方式,这意味着将会使用“/WEB-INF/ views/registerForm.jsp”这个JSP来渲染注册表单。

尽管showRegistrationForm()方法非常简单,但测试依然需要覆盖到它。因为这个方法很简单,所以它的测试也比较简单。

程序清单5.14 测试展现表单的控制器方法

这个测试方法与首页控制器的测试非常类似。它对“/spitter/register”发送GET请求,然后断言结果的视图名为registerForm。

现在,让我们回到视图上。因为视图的名称为registerForm,所以JSP的名称需要是registerForm.jsp。这个JSP必须要包含一个HTML <form>标签,在这个标签中用户输入注册应用的信息。如下就是我们现在所要使用的JSP。

程序清单5.15 渲染注册表单的JSP

可以看到,这个JSP非常基础。它的HTML表单域中记录用户的名字、姓氏、用户名以及密码,然后还包含一个提交表单的按钮。在浏览器渲染之后,它的样子大致如图5.5所示。

需要注意的是:这里的<form>标签中并没有设置action属性。在这种情况下,当表单提交时,它会提交到与展现时相同的URL路径上。也就是说,它会提交到“/spitter/register”上。

这就意味着需要在服务器端处理该HTTP POST请求。现在,我们在Spitter-Controller中再添加一个方法来处理这个表单提交。

图5.5 注册页提供了一个表单,这个表单会由SpitterController
进行处理,完成为应用添加新用户的功能

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文