Springmvc如何實現向前臺傳遞資料
阿新 • • 發佈:2020-07-02
1) 在springmvc方法的形參中定義Map,Model,ModelMap,並在方法中通過這三個物件進行值的傳遞;
①其中Map和ModelMap使用方式是一致的;
@RequestMapping("/detail") public String detail(Integer id,//ModelMap modelMap Map modelMap ){ HashMap<String,String> conditions=new HashMap<>(); conditions.put("sal","88888888"); conditions.put("age","35"); //todo 去資料庫查詢使用者資訊 System.out.println("查詢id為"+id+"的使用者記錄"); User user=new User(id,"詹姆斯",18,"男","美國克利夫蘭",new Role("小前鋒",23),conditions,Arrays.asList("打籃球","打遊戲")); //通過modelMap或map向前臺傳值==>request.setAttribute(key,value) modelMap.put("user",user); return "detail.jsp"; }
②Model只是通過addAttribute進行傳值;
@RequestMapping("/detail") public String detail(Integer id,Model model){ HashMap<String,"打遊戲")); //通過Model物件傳遞資料 model.addAttribute("user",user); return "detail.jsp"; }
2) 定義方法的返回值型別為ModelAndView,在方法中建立ModelAndView 並指定跳轉的頁面和傳遞的資料,最後返回ModelAndView物件;
3) 通過註解的方式 @ModelAttribute;
4) 在方法引數中定義Request或session物件,通過其對應的API;
下面2),3),4)的情況都在下面的程式碼內;
//演示通過ModelAndView向頁面傳值 //@ModelAttribute:註解將物件傳遞到request域中 1)加在方法引數上,將物件傳遞到request域中,或向request域中取值 // 2)加在方法上,將方法的返回值放入request域中 @RequestMapping("/detail2") public ModelAndView detail2(Integer id,@ModelAttribute("username") String username,HttpServletRequest request,HttpSession session,HttpServletResponse response ){ request.setAttribute("requestTest","請求域資料"); session.setAttribute("sessionTest","session域資料"); HashMap<String,"打遊戲")); //通過ModelAndView設定跳轉的頁面和值 ModelAndView modelAndView=new ModelAndView(); //向頁面傳值 modelAndView.addObject("user",user); //指定跳轉的頁面 以/開頭,則直接到資源根目錄下找(即webapp下) // 不以/開頭,跟在RequestMapping最後一個/後面 modelAndView.setViewName("detail.jsp"); return modelAndView; } //將方法返回值放入request域中 @ModelAttribute(name = "modelAttributeTest") public String test(){ return "我是@ModelAttribute的測試"; }
detail.jsp中程式碼如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>使用者詳情頁面</title> </head> <body> <h1>使用者詳細資訊</h1> <table> <tr> <td>使用者名稱</td> <td>${user.name}</td> <td>年齡</td> <td>${user.age}</td> </tr> <tr> <td>性別</td> <td>${user.sex}</td> <td>地址</td> <td>${user.addr}</td> </tr> <tr> <td>角色ID</td> <td>${user.role.id}</td> <td>角色名</td> <td>${user.role.name}</td> </tr> <tr> <td>條件1</td> <td>${user.conditions.sal}</td> <td>條件2</td> <td>${user.conditions.age}</td> </tr> <tr> <td>愛好</td> <td>${user.hobbies}</td> </tr> </table> 獲取@ModelAttribute設定的值:${username}<br/> 獲取@ModelAttribute設定的值2:${modelAttributeTest}<br/> 獲取request設定的值3:${requestTest}<br/> 獲取session設定的值4:${sessionTest} </body> </html>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。