當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
頁面跳轉
- 轉發(默認)
- 重定向
注意:
1、頁面訪問地址中所攜帶的 /
2、如果目錄是在其它層級,那么在返回時候需要加上層級目錄
頁面訪問快捷設定 (InternalResourceViewResolver)
- 展示頁面的保存位置通常固定,且結構相似,可以設定通用的訪問路徑,簡化頁面配置格式,在運行的時候會自動把設置的路徑拼接上去。
- 如果配置了快捷的這種方式,是不支持使用轉發和重定向的。
在代碼里因為配置文件已經做了拼接了,所以直接寫頁面名稱就可以了,不需要寫前后綴了
public String showPage3() {return "page"; }如果未設定返回值,使用void類型,則默認使用訪問路徑作頁面地址的前綴后綴
//最簡頁面配置方式,使用訪問路徑作為頁面名稱,省略返回值 @RequestMapping("/page") public void showPage5() {System.out.println("user mvc controller is running ..."); }帶數據頁面跳轉
方式一:使用HttpServletRequest類型形參進行數據傳遞
@RequestMapping("/showPageAndData1") public String showPageAndData1(HttpServletRequest request) {request.setAttribute("name","itzhuzhu");return "page"; }page.jsp
${name}方式二:使用Model類型形參進行數據傳遞
@RequestMapping("/showPageAndData2") public String showPageAndData2(Model model) {model.addAttribute("name","itzhuzhu");Book book = new Book();book.setName("SpringMVC入門實戰");book.setPrice(66.6d);model.addAttribute("book",book);return "page"; }方式三:使用ModelAndView類型形參進行數據傳遞,將該對象作為返回值傳遞給調用者
//使用ModelAndView形參傳遞參數,該對象還封裝了頁面信息 @RequestMapping("/showPageAndData3") public ModelAndView showPageAndData3(ModelAndView modelAndView) {//ModelAndView mav = new ModelAndView(); 替換形參中的參數// 轉發和重定向不能加xml快捷頁面訪問// 轉發modelAndView.setViewName(forward:page.jsp");// 重定向modelAndView.setViewName("redirect:page.jsp");Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);//添加數據的方式,key對valuemodelAndView.addObject("book",book);//添加數據的方式,key對valuemodelAndView.addObject("name","Jockme");//設置頁面的方式,該方法最后一次執行的結果生效modelAndView.setViewName("page");//返回值設定成ModelAndView對象return modelAndView; }三種方式總結:
- String:僅封裝頁面的基本信息,底層由ModeAndView實現
- Model:僅封裝數據
- ModelAndView:封裝數據并封裝視圖,包含Model和View兩個對象
返回json數據
需要先導入json的三個坐標:
<!--json相關坐標3個--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency>方式一:基于response返回數據的簡化格式,返回JSON數據
//使用jackson進行json數據格式轉化 @RequestMapping("/showData3") @ResponseBody //將java對象轉為json格式的數據 public String showData3() throws JsonProcessingException {Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);ObjectMapper om = new ObjectMapper();return om.writeValueAsString(book); }方式二:使用SpringMVC提供的消息類型轉換器將對象與集合數據自動轉換為JSON數據
//使用SpringMVC注解驅動,對標注@ResponseBody注解的控制器方法進行結果轉換,由于返回值為引用類型,自動調用jackson提供的類型轉換器進行格式轉換 @RequestMapping("/showData4") @ResponseBody public Book showData4() {Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);return book; }需要手工添加信息類型轉換器
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/></list></property> </bean- 方式三:使用SpringMVC注解驅動簡化配置
注解驅動格式:
@EnableWebMvc // 加這個注解 public Book showData5() {}Servlet相關接口-Servlet相關接口替換方案
SpringMVC提供訪問原始Servlet接口API的功能,通過形參聲明即可
@RequestMapping("/servletApi") public String servletApi(HttpServletRequest request,HttpServletResponse response, HttpSession session){System.out.println(request);System.out.println(response);System.out.println(session);request.setAttribute("name","itzhuzhu");System.out.println(request.getAttribute("name"));return "page.jsp"; }Head數據獲取
- 名稱: @RequestHeader
- 類型: 形參注解
- 位置:處理器類中的方法形參前方
- 作用:綁定請求頭數據與對應處理方法形參間的關系
Cookie數據獲取
- 名稱: @CookieValue
- 類型: 形參注解
- 位置:處理器類中的方法形參前方
- 作用:綁定請求Cookie數據與對應處理方法形參間的關系
Session數據獲取
- 名稱: @SessionAttribute
- 類型: 形參注解
- 位置:處理器類中的方法形參前方
- 作用:綁定請求Session數據與對應處理方法形參間的關系
Session數據設置
- 名稱: @SessionAttributes
- 類型: 類注解
- 位置:處理器類上方
- 作用:聲明放入session范圍的變量名稱,適用于Model類型數據傳參
注解式參數數據封裝底層原理
- 數據的來源不同,對應的處理策略要進行區分
- Head
- Cookie
- Session
- SpringMVC使用策略模式進行處理分發
- 頂層接口: HandlerMethodArgumentResolver
- 實現類: ……
總結
以上是生活随笔為你收集整理的SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java嵌套对象,java – 从嵌套流
- 下一篇: Spring注解开发入门教程