日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回

發(fā)布時(shí)間:2024/4/15 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SpringMVC響應(yīng)的方式,無(wú)數(shù)據(jù)跳轉(zhuǎn)頁(yè)面,帶數(shù)據(jù)跳轉(zhuǎn)頁(yè)面.Json數(shù)據(jù)返回

頁(yè)面跳轉(zhuǎn)設(shè)定

//轉(zhuǎn)發(fā)會(huì)把后端攜帶的request和Response發(fā)送到前端jsp,在jsp中可以直接使用其中的數(shù)據(jù)//重定向相當(dāng)于頁(yè)面重新刷新,不能夠拿到后端給的request,Response

頁(yè)面跳轉(zhuǎn)之重定向與轉(zhuǎn)發(fā)

配置視圖解析器

在web.xml中配置視圖解析器

<!-- 配置視圖解析器,方便訪問(wèn)jsp頁(yè)面,并交給spring管理--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 視圖解析前綴(訪問(wèn)前綴)--><property name="prefix" value="/WEB-INF/pages/"/> <!-- 視圖解析后綴(訪問(wèn)后綴)--><property name="suffix" value=".jsp"/></bean>

配置視圖解析器后controller中方法的返回

@RequestMapping("/forwardPages")public String test01(){//跳轉(zhuǎn)頁(yè)面,默認(rèn)是轉(zhuǎn)發(fā)模式//轉(zhuǎn)發(fā)會(huì)把后端攜帶的request和Response發(fā)送到前端jsp,在jsp中可以直接使用其中的數(shù)據(jù) // return "forward:/WEB-INF/pages/success.jsp";/*WEB-IF下的頁(yè)面必須轉(zhuǎn)發(fā)才能訪問(wèn),重定向訪問(wèn)不到,因?yàn)槲覀冊(cè)趕pring-mvc.xml中配置了視圖解析器,前綴,后綴都有*/return "success";}@RequestMapping("/redirectPages")public String test02(){//重定向到頁(yè)面//重定向相當(dāng)于頁(yè)面重新刷新,不能夠拿到后端給的request,Response//配置了視圖解析器不能這樣寫(xiě)了 // return "redirect:/WEB-INF/pages/success.jsp"; // return "redirect:/pages/success";return "";}@RequestMapping("success")public void test03(){//返回值為void的時(shí)候,他轉(zhuǎn)發(fā)的地址為/WEB-INF/response/pages/success.jsp//會(huì)自動(dòng)幫你把請(qǐng)求的地址和視圖解析器拼接}

攜帶數(shù)據(jù)頁(yè)面跳轉(zhuǎn)

方式1:使用HttpServletRequest類型作為參數(shù)進(jìn)行傳遞

@RequestMapping("/showPageAndData1") public String showPageAndData1(HttpServletRequest request) { request.setAttribute("name","小付"); return "page"; }

方式2:使用Model類型作為參數(shù)進(jìn)行數(shù)據(jù)傳遞

//帶著數(shù)據(jù)跳轉(zhuǎn)頁(yè)面@RequestMapping("/data")public String test04(Model model){User user = new User();user.setName("小花");user.setAge(18);//傳遞參數(shù)在jsp頁(yè)面去(實(shí)際還是request域中)model.addAttribute("user",user);model.addAttribute("data","model");return "data";}

方式3:使用ModelAndView類型作為數(shù)據(jù)傳遞,將該對(duì)象作為返回值傳遞給調(diào)用者

//帶著數(shù)據(jù)跳轉(zhuǎn)頁(yè)面(推薦使用)@RequestMapping("/data/modelAndView")public ModelAndView test05(ModelAndView modelAndView){User user = new User();user.setName("小付");user.setAge(18);//傳遞參數(shù)在jsp頁(yè)面去(實(shí)際還是request域中)modelAndView.addObject("data","modelAndView");modelAndView.addObject("user",user);//設(shè)置跳轉(zhuǎn)的頁(yè)面modelAndView.setViewName("data");return modelAndView;}

SpringMVC返回?cái)?shù)據(jù)

方式1:使用Response對(duì)象完成數(shù)據(jù)返回

@RequestMapping("/showData1") public void showData1(HttpServletResponse response) throws IOException { response.getWriter().print("message"); }

或者

@RequestMapping("/showData2") @ResponseBody public String showData2(){ return "message"; }

返回JSON數(shù)據(jù)

在pom中導(dǎo)入json相關(guān)坐標(biāo)的3個(gè)包

<!--json相關(guān)坐標(biāo)3個(gè)--><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返回?cái)?shù)據(jù)的簡(jiǎn)化格式,返回JSON數(shù)據(jù)

@RequestMapping("/showData3") @ResponseBody public String showData3() throws JsonProcessingException { ObjectMapper om = new ObjectMapper(); Book book = new Book(); book.setName("我愛(ài)java"); book.setPrice(88.8d); return om.writeValueAsString(book); }

返回JSON數(shù)據(jù)(對(duì)象)

方式2:使用SpringMVC提供的消息類型轉(zhuǎn)換器將對(duì)象與集合數(shù)據(jù)自動(dòng)類型轉(zhuǎn)換成JSON數(shù)據(jù)(同樣要導(dǎo)入json相關(guān)坐標(biāo)的3個(gè)包)

//帶著Json數(shù)據(jù)跳轉(zhuǎn)頁(yè)面(推薦使用)@RequestMapping("/json")//這個(gè)注解代表return回去的是json字符串,加上這個(gè)注解,就不會(huì)提供頁(yè)面跳轉(zhuǎn),只會(huì)響應(yīng)數(shù)據(jù)@ResponseBodypublic User test06(){User user = new User();user.setName("小付");user.setAge(18);//@ResponseBody因?yàn)榧恿诉@個(gè)注解,和導(dǎo)入了json相關(guān)坐標(biāo)的3個(gè)包,就會(huì)幫我們轉(zhuǎn)成json返回到頁(yè)面return user;}

返回JSON數(shù)據(jù)(集合)

//帶著Json數(shù)據(jù)跳轉(zhuǎn)頁(yè)面(推薦使用)@RequestMapping("/json/map")//這個(gè)注解代表return回去的是json字符串,加上這個(gè)注解,就不會(huì)提供頁(yè)面跳轉(zhuǎn),只會(huì)響應(yīng)數(shù)據(jù)@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因?yàn)榧恿诉@個(gè)注解,和導(dǎo)入了json相關(guān)坐標(biāo)的3個(gè)包,就會(huì)幫我們轉(zhuǎn)成json返回到頁(yè)面return map;}

Servlet相關(guān)接口

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"; }


總結(jié)

以上是生活随笔為你收集整理的SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。