博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC系列教程——06控制器接收表单
阅读量:3958 次
发布时间:2019-05-24

本文共 4045 字,大约阅读时间需要 13 分钟。

SpringMVC系列教程——06控制器接收表单

上一讲我们已经讲了注解配置访问路径,但是访问后表单的提交方式那样是不可以做到的(在前面我们讲过利用xml配置的方式实现AbstractCommandController接口的方式接收表单),本章我们接着上一章的内容继续学习表单的接收。

文章目录

一.接收方式一

我们把前面的UserController类添加registerregisterUser方法后如下

package web.Controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import java.util.Date;@Controller@RequestMapping("user")public class UserController {
@RequestMapping(value = "list",method = RequestMethod.POST) public String list(){
return "user/UserList"; } @RequestMapping(value = "register") public String Register(){
return "user/register"; } @RequestMapping(value = "userInfo",method = RequestMethod.POST) public String registerUser(String name, String password, String gender, Date birthday, int[] hobbies){
System.out.println("name:"+name); System.out.println("password:"+password); System.out.println("gender:"+gender); System.out.println("birthday:"+birthday); System.out.println("hobbies:"); for (int hobby : hobbies) {
System.out.print(hobby+" "); } return "user/userInfo"; }}

register.jsp的代码如下:

<%--  Created by IntelliJ IDEA.  User: Administrator  Date: 2020/7/31  Time: 14:36  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>    注册账号
用户名:
密码:
性别:
生日:
爱好:
打篮球
泡妞
旅游

访问:http://localhost:8080/user/register.do

在这里插入图片描述
接下来我们填写信息提交后信息会被registerUser()的参数接收到,这就是通过方法参数(参数的名字要与input的name属性名一致)接收表单数据的方式。
在这里插入图片描述
在这里插入图片描述
我们发现类型转化的时候出了问题,这是因为我们的出生日期填写的方式不对,应该写为31/7/2018
在这里插入图片描述
在这里插入图片描述
上面没有值的原因在于request没有配置属性,因此这种方法并不是我们推荐的。

二.接收方式二

这种方式是通过poj对象来进行封装。

创建user

package web.model;import java.util.Arrays;public class User {
@Override public String toString() {
return "User{" + "name='" + name + '\'' + ", password='" + password + '\'' + ", gender='" + gender + '\'' + ", birthday='" + birthday + '\'' + ", hobbies=" + Arrays.toString(hobbies) + '}'; } private String name; private String password; private String gender; private String birthday; private String[] hobbies; public User(){
} public String[] getHobbies() {
return hobbies; } public void setHobbies(String[] hobbies) {
this.hobbies = hobbies; } public String getName() {
return name; } public void setName(String name) {
this.name = name; } public String getPassword() {
return password; } public void setPassword(String password) {
this.password = password; } public String getGender() {
return gender; } public void setGender(String gender) {
this.gender = gender; } public String getBirthday() {
return birthday; } public void setBirthday(String birthday) {
this.birthday = birthday; }}

然后我们再UserController里加上下面方法:

@RequestMapping("register2")public String registerUser2(User user){
System.out.println(user); return "user/userInfo";}

同时将register.jsp修改如下:

在这里插入图片描述
访问:http://localhost:8080/user/register.do
在这里插入图片描述
在这里插入图片描述
上面表单数据提交后会把数据封装为User对象传给registerUser2的参数user,可以显示数据的原因在于SpringMVC帮我们把registerUser2的参数user设置为了request的属性了。

三.接收方式三

这种方式是接收包装类型。

包装类型如下;

package web.model;public class UserExt {
private User user; public UserExt(){
} //注意getter与setter方法同时需要,因为在底层是靠这两个方法操作值的 public User getUser() {
return user; } public void setUser(User user) {
this.user = user; } @Override public String toString() {
return "UserExt{" + "user=" + user + '}'; }}

registerUser2的修改如下:

在这里插入图片描述

register.jsp作如下的加上user的修改

在这里插入图片描述
userInfo.jsp修改如下:
在这里插入图片描述

再次访问如下:

在这里插入图片描述
在这里插入图片描述
还有接收map类型与list类型的方式,这里做简单的介绍
map类型:
在这里插入图片描述
在这里插入图片描述


list类型:

在这里插入图片描述
在这里插入图片描述

转载地址:http://dxlzi.baihongyu.com/

你可能感兴趣的文章
用例图(UseCase Diagram)—UML图(一)
查看>>
类图(Class diagram)—UML图(二)
查看>>
对象图(Object Diagram)—UML图(三)
查看>>
活动图(Activity Diagram)—UML图(四)
查看>>
状态图(Statechart Diagram)—UML图(五)
查看>>
时序图(Sequence Diagram)—UML图(六)
查看>>
构件图(Component Diagram)—UML图(八)
查看>>
部署图(Deployment Diagram)—UML图(九)
查看>>
协作图(Collaboration Diagram)—UML图(七)
查看>>
什么是RUP
查看>>
什么是UML(UML总结)
查看>>
UML基础与应用系列文章汇总
查看>>
C#方法重载(overload)方法重写(override)隐藏(new)
查看>>
javascript实现滚动图片
查看>>
css+div练手-工作室
查看>>
CSS+DIV布局之道
查看>>
CSS+DIV练手-公司
查看>>
CSS+DIV练手—鲜花展
查看>>
深入浅出JavaScript(1)—ECMAScript
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>