pojo类
public class Student {
private String sname;
private Integer age;
private Integer gender;
@Override
public String toString() {
return "Student{" +
"sname='" + sname + '\'' +
", age=" + age +
", gender=" + gender +
'}';
}
public void setSname(String sname) {
this.sname = sname;
}
public void setAge(Integer age) {
this.age = age;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public String getSname() {
return sname;
}
public Integer getAge() {
return age;
}
public Integer getGender() {
return gender;
}
}
依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
1.获取请求中的普通参数(GET、POST)
/**
* 获取请求中的普通参数(GET、POST)
* @param sname
* @param age
* @param gender
* @param model
* @return
*/
@RequestMapping("/param")
public String testParm(@RequestParam("sname")String sname, @RequestParam("age") Integer age, Integer gender, Model model){
model.addAttribute("sname",sname);
model.addAttribute("age",age);
model.addAttribute("gender",gender);
log.debug(sname+age+gender);
return "hello";
}
2.获取URL的参数
/**
* 获取URI中的变量,通常用于RESTFull服务
* @param sname
* @param age
* @param model
* @return
*/
//直接在地址栏里拼参数
@RequestMapping("/path_var/{sname}/{age}")
public String path(@PathVariable("sname") String sname,@PathVariable Integer age, Model model) {
model.addAttribute("sname", sname);
model.addAttribute("age", age);
log.debug("sname: " + sname + ", age: " + age);
return "hello";
}
3.获取请求头参数
/**
* 获取请求头参数
* @param sname
* @param model
* @return
*/
//直接在header里写参数 不写中文 编码不一样
@RequestMapping("/header")
public String testReqHeader(@RequestHeader("sname") String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
4.获取session作用域参数
jsp代码
<% session.setAttribute("sname","张三"); %>
<a href="test/attr">session</a>
Java代码
/**
* 获取作用域参数
* @param sname
* @param model
* @return
*/
@RequestMapping("/attr")
public String testAttr(@SessionAttribute(value = "sname", required = false) String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
5.获取Cookie参数
/**
* 获取Cookie参数
* @param sname
* @param model
* @return
*/
@RequestMapping("/cookie")
public String testCookie(@CookieValue("sname") String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
在cookie里添加一个
6.测试@ModelAttribute作用
需要提前初始化数据才行
/**
* 提前初识化一些数据,在RequestMapping方法中,可以通过给方法参数添加@ModelAttribute来使用
* @return
*/
@ModelAttribute
public Map<String, String> prepareData() {
Map<String, String> data = new HashMap<>();
data.put("sname", "张四丰");
return data;
}
/**
* 测试@ModelAttribute作用
* @return
*/
@RequestMapping("/model_attr")
public String testModelAttr(@ModelAttribute Map<String, String> data, Model model) {
log.debug("model key: sname ->" + data.get("sname"));
model.addAttribute("sname", data.get("sname"));
return "hello";
}
7.自动将请求中的参数封装到指定的java bean中
@Controller
public class StudentController {
/**
* 自动将请求中的参数封装到指定的java bean中
* @param student
* @param model
* @return
*/
@RequestMapping("/get_stu")
public String getStudent(Student student, Model model) {
model.addAttribute("student", student);
return "student";
}
}
前台展示
student对象: ${student} <br />
sname: ${student.sname}