您好,登錄后才能下訂單哦!
前面幾篇文章重點說明了一下怎么從前臺傳遞參數到目標方法,還沒有說怎么把結果返回給前臺。本篇來講述一下spring mvc怎么返回結果數據。
從使用形式上看,有以下幾種方式:ModelAndView、Map、Model,這幾種方式都可以返回數據到前臺,本質上來看都是通過map的形式返回數據的。本系列文章著重于使用,深層次的原因,感興趣的同志可以去調適源代碼,這里只是結合使用方式,做簡單的樣例和分析。
1、ModelAndView的使用
/** * 方法的返回值可以是ModelAndView類型,它可以包含視圖和模型信息 * spring mvc會把模型信息放入到request域對象中,可以跟蹤源碼調試 * 這個類org.springframework.web.servlet.view.AbstractView * 這個方法exposeModelAsRequestAttributes * @return */ @RequestMapping("/testModelAndView") public ModelAndView testModelAndView() { ModelAndView modelAndView = new ModelAndView("success"); modelAndView.addObject("name", "Jack use ModelAndView"); return modelAndView; }
2、Map的使用
/** * 使用map返回數據,實際上是實例化了一個 * org.springframework.validation.support.BindingAwareModelMap * @param map * @return */ @RequestMapping("/testMap") public String testMap(Map<String, Object> map) { System.out.println(map.getClass().getName()); map.put("name", "Jack use Map"); return "success"; }
3、Model的使用,本質上與map一樣
/** * 使用model和使用map一樣,都是實例化了一個 * org.springframework.validation.support.BindingAwareModelMap * @param model * @return */ @RequestMapping("/testModel") public String testModel(Model model) { System.out.println(model.getClass().getName()); model.addAttribute("name", "Jack use Model"); return "success"; }
4、SessionAttributes的使用,可以把數據存放到session域中去,有兩個屬性,value和types,value執行需要放到會話中的屬性的屬性名,types指定需要放到會話中的屬性的類型。
在類上添加注解:
@SessionAttributes(value = {"user"}, types = {String.class})
目標方法的定義
/** * 注解SessionAttribute可以通過屬性名指定需要放到會話中的屬性,實際上通過value屬性 * 還可以通過types指定哪些類型的屬性需要放到會話中去 * 但是該注解只能用于類上 * @param map * @return */ @RequestMapping("/testSessionAttributes") public String testSessionAttributes(Map<String, Object> map) { User user = new User(); user.setAge(15); user.setUserName("lxy"); map.put("user", user); map.put("name", "jack in sessionAttribute"); return "success"; }
項目源代碼:
https://git.oschina.net/acesdream/spring-mvc
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。