基本类型和String类型作为参数
<a href = "test/testString?userName=aa">测试字符串</a>
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("testString")
public String testString(String userName){
System.out.println("执行了");
return "success";
}
}
POJO类型作为参数
<form action="/test/testUser" method="post">
姓名:<input type="text" name="userName"><br>
年龄:<input type="text" name="age"><br>
生日:<input type="text" name="date"><br>
<input type="submit" value="提交">
</form>
@Data
public class User{
private String userName;
private String age;
private String date;
}
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testUser")
public String testUser(User user){
System.out.println(user.toString());
return "success";
}
}
POJO类中包含集合类型参数
<form action="/test/testUserMap" method="post">
姓名:<input type="text" name="userName"><br>
年龄:<input type="text" name="age"><br>
日期:<input type="text" name="date"> <br>
账户4名称:<input type="text" name="accountMap['two'].name" ><br/>
账户1名称:<input type="text" name="accounts[0].name" ><br/>
<input type="submit" value="提交"/>
</form>
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testUserMap")
public String testUserMap(User user){
System.out.println(user);
return "success";
}
}
使用ServletAPI对象作为方法参数
<a href="test/testServletAPI">测试原生Servlet</a>
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testServletAPI")
public String testServletAPI(HttpServletRequest request,HttpServletResponse response,HttpSession session){
System.out.println(request);
System.out.println(response);
System.out.println(session);
}
}
常用注解
@RequestParam
<a href="test/testRequestParam?name=test">测试请求参数绑定</a>
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(value="name") String userName){
System.out.println(userName);
return "success";
}
}
@RequestBody
<form action="test/testRequestBody" method="post">
姓名:<input type="text" name="userName"><br>
年龄:<input type="text" name="age"><br>
日期:<input type="text" name="date"><br>
<input type="submit" value="提交"/>
</form>
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("testRequestBody")
public String testRquestBody(@RequestBody String body){
System.out.println(body);
return "success";
}
}
@PathVaribale 适用于restful风格的,含义就是路径是一样的,根据入参类型不同,请求到不到接口上
<a href="/test/testPathVaribale/100">测试请求路径</a>
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testPathVaribale/{id}")
public String testParhVaribale(@PathVaribale("id") Integer id){
System.out.println("id"+id);
return "success";
}
}
@RequestHeader
<a href="test/testRequestHeader">测试请求Header</a>
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept-Language" String RequestHeader)){
System.out.printlin("Accept-Language"+Accept-Language);
return "success";
}
}
@CookieValue
<a href="test/testCookieValue">测试cookie</a>
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID" String CookieValue)){
System.out.printlin("CookieValue"+CookieValue);
return "success";
}
}
@ModelAttribute
@SessionAttribute 这个注解必须加载类上面
<a href="test/testSaveSession">保存到session域中</a>
@Controller
@RequestMapping("test")
@SessionAttribuate(value={"userName","age"})
public class test{
@RequestMapping("testSaveSession")
public String testSaveSession(Model model){
System.our.println("像session域中保存数据");
model.addAttribute("userName","hh");
model.addAttribute("age","20");
return "success";
}
}
<a href="test/testFindSession">测试从session中获取</a>
@Controller
@RequestMapping("test")
@SessionAttribute(value={"userName","age"})
public class test{
@RequestMapping("testFindSession")
public String testFindSession(ModelMap modelMap){
String userName =(String)modelMap.get("userName");
String age =(String)modelMap.get("age");
return "success";
}
}
<a href="test/testDeleteSession">测试从session域中删除</a>
@Controller
@RequestMapping("test")
@SessionAttribute(value={"userName","age"})
public class test{
@RequestMapping("testDeleteSession")
public String testDeleteSession(SessionStatus sessionStatus){
sessionStatus.setComplete();
System.out.println("清除session");
}
}