當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
視圖解析,請求Controller返回的視圖類型:
@Controller @RequestMapping("/test") public class TestController {//正常返回ModelAndView@RequestMapping("/modelAndView")public ModelAndView retModelAndView(){ModelAndView mv = new ModelAndView("hello");mv.addObject("msg","正常ModelAndView的返回");return mv;}//返回json視圖(json格式的數(shù)據(jù))@RequestMapping("/jsonView")@ResponseBody //通過這個注解聲明 返回json格式數(shù)據(jù)public List<Book> returnJsonView() {List<Book> list = new ArrayList<>();Book book1 = new Book();book1.setId(1);book1.setName("降龍十八掌");book1.setDesc("最難是亢龍有悔");list.add(book1);Book book2 = new Book();book2.setId(2);book2.setName("凌波微步");book2.setDesc("走為上");list.add(book2);return list;}//不做任何操作直接返回視圖名稱(jsp頁面) 前提是要有這個jsp頁面@RequestMapping("/viewName")public String returnViewName() {String viewName = "index";return viewName;}//重定向@RequestMapping("/redirect")public String returnRedirect(){//返回值以 redirect: 開頭后面跟上urlreturn "redirect:/test/jsonView.do";}//請求轉(zhuǎn)發(fā)@RequestMapping("/forward")public String returnForward(){//返回值以 forward: 開頭后面跟上urlreturn "forward:/test/jsonView.do";}//不返回視圖,只返回狀態(tài)碼@RequestMapping("/noView")@ResponseStatus(HttpStatus.OK)public void returnNoView(){} }返回json視圖需要的jar包:jackson-databind
?
請求方式限定:
// 請求方式限定 限定post請求方式@RequestMapping(value = "/requestMethodPost", method = RequestMethod.POST)public ModelAndView requestMethodPost() {ModelAndView mv = new ModelAndView();mv.setViewName("index");//設(shè)置視圖名字(jsp頁面)mv.addObject("msg", "requestMethod method=post");return mv;}//請求方式限定 限定多種請求方式@RequestMapping(value = "/requestMethod", method = {RequestMethod.POST, RequestMethod.GET})public ModelAndView requestMethod() {ModelAndView mv = new ModelAndView();mv.setViewName("index");//設(shè)置視圖名字mv.addObject("msg", "requestMethod method=post and get");return mv;}?
請求參數(shù)獲取:
1,獲取servlet內(nèi)置對象(不推薦使用)
//獲取servlet內(nèi)置對象 不推薦使用@RequestMapping("/servletObj")public ModelAndView getServletObj(HttpServletRequest request, HttpServletResponse response, HttpSession session) {ModelAndView mv = new ModelAndView("servlet_test");// WEB-INF/views/servlet_test.jsp頁面mv.addObject("request", "我是request===" + request);mv.addObject("response", "我是response===" + response);mv.addObject("session", "我是session===" + session);return mv;} <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head><title>Title</title> </head> <body><h1>${request}</h1><h1>${response}</h1><h1>${session}</h1> </body> </html>?
2,獲取PathVariable(占位符)參數(shù)
//獲取PathVariable(占位符)參數(shù)@RequestMapping("/pathVariable/{name}/{code}")public ModelAndView getPathVariable(@PathVariable("name") String name, @PathVariable("code") String code) {ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "占位符映射參數(shù),name=" + name + ",code=" + code);return mv;}?
3,獲取基本類型數(shù)據(jù)的請求參數(shù)
表單信息:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <form action="/test/baseDataTypeParams.do" method="post"><table><tr><td>姓名:</td><td><input name="name" value="zhangsan"/></td></tr><tr><td>年齡:</td><td><input name="age" value="20"/></td></tr><tr><td>收入:</td><td><input name="income" value="99999"/></td></tr><tr><td colspan="2"><input type="submit" value="提交表單"/></td></tr></table> </form> </body> </html>controller:
//獲取基本數(shù)據(jù)類型的請求參數(shù)@RequestMapping("baseDataTypeParams")public ModelAndView getBaseDataTypeParams(@RequestParam("name") String name, @RequestParam("age") int age,@RequestParam("income") double income) {ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "name=" + name + ",age=" + age + ",income=" + income);return mv;}?
4,獲取請求參數(shù)并封裝成pojo對象
寫一個user類:
package zy.com.domain;public class User {private String name;private int age;private double income;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getIncome() {return income;}public void setIncome(double income) {this.income = income;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", income=" + income +'}';} } View Code //獲取請求參數(shù)并封裝成pojo對象@RequestMapping("/pojo")public ModelAndView getPojo(User user) {ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "接收的對象參數(shù) user:" + user);return mv;}把上面的表單請求的action改成
<form action="/test/pojo.do" method="post">?
5,限制并獲取參數(shù)信息
//獲取并限制表單參數(shù)信息 requird必傳參數(shù) defaultvalue默認(rèn)值...@RequestMapping("/param")public ModelAndView getParam(@RequestParam(value = "name", required = true, defaultValue = "zhangsan") String name) {ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "接收的參數(shù) name:" + name);return mv;}?
6,獲取cookie參數(shù)信息
//獲取cookie信息@RequestMapping("/cookieInfo")public ModelAndView getCookieInfo(@CookieValue("JSESSIONID")String jsessionid){ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "接收的參數(shù) JSESSIONID:" + jsessionid);return mv;}?
7,獲取對象集合參數(shù)
對象集合類:
package zy.com.domain;import java.util.List;public class Books {private List<Book> userList;public List<Book> getUserList() {return userList;}public void setUserList(List<Book> userList) {this.userList = userList;}@Overridepublic String toString() {return "Books{" +"userList=" + userList +'}';} } View Code //獲取對象集合信息public ModelAndView getBookList(Books books){ModelAndView mv = new ModelAndView("index");mv.addObject("msg", "接收的參數(shù) books:" + books);return mv;}?
8,接收json格式請求(@RequestBody())
// 接收json格式對象 轉(zhuǎn)成 javabean對象@RequestMapping("/json")public ModelAndView getJson(@RequestBody() Book book) {ModelAndView modelAndView = new ModelAndView("index");modelAndView.addObject("msg", "獲取json信息轉(zhuǎn)成user對象: book=" + book);System.out.println("-----------------------------------------");System.out.println("book=" + book);return modelAndView;}// 將json數(shù)組對象 轉(zhuǎn)成 包含javabean對象的集合@RequestMapping("/jsonList")public ModelAndView getJsonList(@RequestBody() List<Book> bookList) {ModelAndView modelAndView = new ModelAndView("index");modelAndView.addObject("msg", "獲取json信息轉(zhuǎn)成List<user>對象: bookList=" + bookList);System.out.println("-----------------------------------------");System.out.println("bookList=" + bookList);return modelAndView;}?
轉(zhuǎn)載于:https://www.cnblogs.com/blazeZzz/p/9329482.html
總結(jié)
以上是生活随笔為你收集整理的SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017.5.5-afternoon
- 下一篇: Haproxy全透明代理