當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SpringMVC響應的方式,無數據跳轉頁面,帶數據跳轉頁面.Json數據返回
頁面跳轉設定
//轉發會把后端攜帶的request和Response發送到前端jsp,在jsp中可以直接使用其中的數據//重定向相當于頁面重新刷新,不能夠拿到后端給的request,Response頁面跳轉之重定向與轉發
配置視圖解析器
在web.xml中配置視圖解析器
<!-- 配置視圖解析器,方便訪問jsp頁面,并交給spring管理--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 視圖解析前綴(訪問前綴)--><property name="prefix" value="/WEB-INF/pages/"/> <!-- 視圖解析后綴(訪問后綴)--><property name="suffix" value=".jsp"/></bean>配置視圖解析器后controller中方法的返回
@RequestMapping("/forwardPages")public String test01(){//跳轉頁面,默認是轉發模式//轉發會把后端攜帶的request和Response發送到前端jsp,在jsp中可以直接使用其中的數據 // return "forward:/WEB-INF/pages/success.jsp";/*WEB-IF下的頁面必須轉發才能訪問,重定向訪問不到,因為我們在spring-mvc.xml中配置了視圖解析器,前綴,后綴都有*/return "success";}@RequestMapping("/redirectPages")public String test02(){//重定向到頁面//重定向相當于頁面重新刷新,不能夠拿到后端給的request,Response//配置了視圖解析器不能這樣寫了 // return "redirect:/WEB-INF/pages/success.jsp"; // return "redirect:/pages/success";return "";}@RequestMapping("success")public void test03(){//返回值為void的時候,他轉發的地址為/WEB-INF/response/pages/success.jsp//會自動幫你把請求的地址和視圖解析器拼接}攜帶數據頁面跳轉
方式1:使用HttpServletRequest類型作為參數進行傳遞
@RequestMapping("/showPageAndData1") public String showPageAndData1(HttpServletRequest request) { request.setAttribute("name","小付"); return "page"; }方式2:使用Model類型作為參數進行數據傳遞
//帶著數據跳轉頁面@RequestMapping("/data")public String test04(Model model){User user = new User();user.setName("小花");user.setAge(18);//傳遞參數在jsp頁面去(實際還是request域中)model.addAttribute("user",user);model.addAttribute("data","model");return "data";}方式3:使用ModelAndView類型作為數據傳遞,將該對象作為返回值傳遞給調用者
//帶著數據跳轉頁面(推薦使用)@RequestMapping("/data/modelAndView")public ModelAndView test05(ModelAndView modelAndView){User user = new User();user.setName("小付");user.setAge(18);//傳遞參數在jsp頁面去(實際還是request域中)modelAndView.addObject("data","modelAndView");modelAndView.addObject("user",user);//設置跳轉的頁面modelAndView.setViewName("data");return modelAndView;}SpringMVC返回數據
方式1:使用Response對象完成數據返回
@RequestMapping("/showData1") public void showData1(HttpServletResponse response) throws IOException { response.getWriter().print("message"); }或者
@RequestMapping("/showData2") @ResponseBody public String showData2(){ return "message"; }返回JSON數據
在pom中導入json相關坐標的3個包
<!--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></dependencies>方式1:使用Response返回數據的簡化格式,返回JSON數據
@RequestMapping("/showData3") @ResponseBody public String showData3() throws JsonProcessingException { ObjectMapper om = new ObjectMapper(); Book book = new Book(); book.setName("我愛java"); book.setPrice(88.8d); return om.writeValueAsString(book); }返回JSON數據(對象)
方式2:使用SpringMVC提供的消息類型轉換器將對象與集合數據自動類型轉換成JSON數據(同樣要導入json相關坐標的3個包)
//帶著Json數據跳轉頁面(推薦使用)@RequestMapping("/json")//這個注解代表return回去的是json字符串,加上這個注解,就不會提供頁面跳轉,只會響應數據@ResponseBodypublic User test06(){User user = new User();user.setName("小付");user.setAge(18);//@ResponseBody因為加了這個注解,和導入了json相關坐標的3個包,就會幫我們轉成json返回到頁面return user;}返回JSON數據(集合)
//帶著Json數據跳轉頁面(推薦使用)@RequestMapping("/json/map")//這個注解代表return回去的是json字符串,加上這個注解,就不會提供頁面跳轉,只會響應數據@ResponseBodypublic Map<String,Object> test07(){User user = new User();user.setName("小付");user.setAge(18);User user2 = new User();user2.setName("小花");user2.setAge(18);Map<String, Object> map = new HashMap<>();map.put("xiaofu",user);map.put("xiaohua",user2);//@ResponseBody因為加了這個注解,和導入了json相關坐標的3個包,就會幫我們轉成json返回到頁面return map;}Servlet相關接口
HttpServletRequest/HttpServletResponse/HttpSession
@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","小付"); System.out.println(request.getAttribute("name")); return "page.jsp"; }
總結
以上是生活随笔為你收集整理的SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC的请求参数,类型转换器
- 下一篇: springMVC获取异步请求的参数,返