接收请求参数
请求一个参数
@ResponseBody
@RequestMapping("/stu1")
public Student getName(HttpServletRequest request){
String name = request.getParameter("name");
Student student = new Student();
student.setGender("男");
student.setAge(19);
student.setName("张三");
return student;
}
请求一个参数并给student赋值,参数可以为空
@ResponseBody
@RequestMapping("/stu2")
public Student getName(String name){
Student student = new Student();
student.setGender("男");
student.setAge(19);
student.setName(name);
return student;
}
请求一个参数,参数不能为空
@ResponseBody
@RequestMapping("/stu3")
public Student getStuName(@RequestParam("sname") String name){
Student student = new Student();
student.setGender("男");
student.setAge(19);
student.setName(name);
return student;
}
请求一个参数,可以为空
@ResponseBody
@RequestMapping("/stu4")
public Student Name(@RequestParam(value = "name",required = false) String name){
Student student = new Student();
student.setGender("男");
student.setAge(19);
student.setName(name);
return student;
}
接收Student类
@ResponseBody
@RequestMapping("/stu5")
public Student getStu(Student student){
return student;
}
级联赋值
public class User {
private String username;
private String password;
private String email;
private int age;
public Address address;
@RequestMapping("/test5")
public String testPojo(User user){
System.out.println(user);
return SUCCESS;
}
传值
<form action="/test5" method="post">
name <input name="username" type="text"><br>
password<input name="password" type="text"><br>
age<input name="age" type="text"><br>
email<input name="email" type="text"><br>
province<input name="address.province" type="text"><br>
city<input name="address.city" type="text"><br>
<input value="submit" type="submit">
</form>
数组
@ResponseBody
@RequestMapping("/stu6")
public String listName(String[] name){
StringBuilder sb = new StringBuilder();
for (String s : name) {
sb.append(s).append(" ");
}
return sb.toString();
}
private static final String SUCCESS = "success";
@RequestMapping(value = "/test",method = RequestMethod.POST)
public String testResultMethod(){
System.out.println("/test");
return SUCCESS;
}
@RequestMapping(value = "/test1",params = {"username","age!=10"})
public String testParm(){
System.out.println("test1");
return SUCCESS;
}
@RequestMapping(value = "/test2/{id}")
public String testParm(@PathVariable Integer id){
System.out.println("id");
return SUCCESS;
}
<form method="post" action="/test">
<input type="submit" value="提交">
</form>
<a href="/test1?username=111&age=9">aaa</a>
<a href="/test2/1">PathVariable</a>
put 和delete请求
@RequestMapping(value = "/test3/{id}",method = RequestMethod.DELETE)
public String testDelet(@PathVariable Integer id){
System.out.println("/test3"+id);
return SUCCESS;
}
@RequestMapping(value = "/test3/{id}",method = RequestMethod.PUT)
public String testPut(@PathVariable Integer id){
System.out.println("/test3/"+id);
return SUCCESS;
}
发送请求
<form method="post" action="/test3/1">
<input type="hidden" value="DELETE" name="_method">
<input type="submit" value="delete">
</form>
<form method="post" action="/test3/1">
<input type="hidden" value="PUT" name="_method">
<input type="submit" value="put">
</form>
xml配置
<!-- 增加HiddenHttpMethodFilte过滤器:给普通浏览器增加 put|delete请求方式 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在要跳转的jsp页面加上isErrorPage="true"
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
否则会报错(Tomcat8.0以上不支持delete和put请求)
获取JSESSIONID
@RequestMapping("/cookie")
public String testCookie(@CookieValue(value = "JSESSIONID")String sessionId){
System.out.println(sessionId);
return SUCCESS;
}
给前端页面赋值
ModelAndView
@RequestMapping("/test7")
public ModelAndView testModel() {
String success = SUCCESS;
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("time", new Date());
modelAndView.setViewName(SUCCESS);
return modelAndView;
}
前端
time:${requestScope.time}
Map
@RequestMapping("/test8")
public String testMap(Map<String,Object>map) {
System.out.println(map.getClass().getName());
map.put("names", Arrays.asList("张三", "李四","王五"));
return SUCCESS;
}
前端
names:${requestScope.names}
@RequestMapping("/test9")
public String test(Map<String,Object>map){
User user = new User("福尔摩斯", "123", "fu@163.com", 13, new Address("伦敦", "贝克街221B"));
map.put("user", user);
return SUCCESS;
}
前端页面
request:${requestScope.user}
@ModelAttribute会在每个方法前执行查询user,并赋值给方法所需的地方
@ModelAttribute
public void getUser(Map<String,Object>map){
User user = new User("福尔摩斯", "123", "fu@163.com", 13, new Address("伦敦", "贝克街221B"));
map.put("user", user);
}
@RequestMapping("/test9")
public String test(User user){
System.out.println(user);
return SUCCESS;
}