Spring MVC 表单处理
在项目目录 src/main/java 的包 com.shiyanlou.entity 下新建类 User.java,包含 id、username、password 和 age 属性,代码如下:
package com.shiyanlou.entity;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
在包 com.shiyanlou.controller 下新建 Controller 类 UserController.java,具体解释注释已经给出,代码如下:
package com.shiyanlou.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.shiyanlou.entity.User;
/**
* UserController 是一个基于注解的控制器
* 可以同时处理多个请求动作
*/
@Controller
public class UserController {
/**
* RequestMapping 用来映射一个请求和请求的方法
* value = "/register" 表示请求由 register 方法进行处理
*/
@RequestMapping(value = "/register")
public String Register(User user, Model model) { // user:视图层传给控制层的表单对象;model:控制层返回给视图层的对象
// 在 model 中添加一个名为 "user" 的 user 对象
model.addAttribute("user", user);
// 返回一个字符串 "success" 作为视图名称
return "success";
}
}
在 webapp 目录下新建一个 JSP 页面命名为 register.jsp,代码如下:
<%@ page language = "java" contentType = "text/html; charset = UTF-8"
pageEncoding = "UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset = UTF-8" />
<title>register page</title>
</head>
<body>
<form action="register" method="post">
<h5>User registration</h5>
<p>
<label>name </label>
<input type="text" id="username" name="username" tabindex="1" />
</p>
<p>
<label>password </label>
<input type="text" id="password" name="password" tabindex="2" />
</p>
<p>
<label>age </label>
<input type="text" id="age" name="age" tabindex="3" />
</p>
<p id="buttons">
<input id="submit" type="submit" tabindex="4" value="register" />
<input id="reset" type="reset" tabindex="5" value="reset" />
</p>
</form>
</body>
</html>
在 webapp/WEB-INF/views 新建一个 JSP 页面命名为 success.jsp,代码如下:
<%@ page language = "java" contentType = "text/html; charset = UTF-8"
pageEncoding = "UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset = UTF-8" />
<title>success page</title>
</head>
<body>
<h5>login was successful</h5>
<p>
name:${requestScope.user.username}<br />
password:${requestScope.user.password}<br />
age:${requestScope.user.age}<br />
</p>
</body>
</html>
输入 mvn jetty:run 运行程序,点击工具--web 服务按钮,访问 spring mvc 填入数据,点击注册。
结果: