SpringMVC之數據存儲


1、使用request域對象存儲數據:將請求中的參數存儲在request中,使用setAttribute()方法可以在jsp頁面訪問該屬性。

@RequestMapping("/test17")
public String test17(HttpServletRequest request String name) throws IOException {
    request.setAttribute("name", name);
    return SUCCESS;
}

 

2、使用session域對象存儲數據:

// 存儲數據:session
@RequestMapping("/test18")
public String test18(HttpSession session, String name) throws IOException {
    session.setAttribute("name", name);
    return SUCCESS;
}

 

3、使用ModelAndView存儲數據,有兩個作用:

作用一:設置轉向地址,如下所示(這也是ModelAndView和ModelMap的主要區別)
ModelAndView view = new ModelAndView("path:ok");

作用二: 用於傳遞控制方法處理結果數據到結果頁面,也就是說我們把需要在結果頁面上需要的數據放到ModelAndView對象中即可,他的作用類似於request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數據。通過以下方法向頁面傳遞參數:
addObject(String key,Object value);

在頁面上可以通過el表達式$key或者bboss的一系列數據展示標簽獲取並展示ModelAndView中的數據。

ModelAndView既可以存儲八大基本類型的數據,也可以存儲List、Set、Map類型的集合。

// 存儲數據:ModelAndView
@RequestMapping("/test19")
public ModelAndView test19(String name) throws IOException {
    ModelAndView mav = new ModelAndView(SUCCESS);
    ArrayList<String> list = new ArrayList<String>();
    list.add("Anna");
    list.add("Jay");
    list.add("Joe");
    list.add("John");
    mav.addObject("list", list);
    
    HashMap<String, Integer> map = new HashMap<String, Integer>();
    map.put("a", 12);
    map.put("b", 23);
    map.put("c", 34);
    mav.addObject("map", map);
    mav.addObject("name", name);
    return mav;
}

 

 4、使用Model對象存儲數據

// 存儲數據:Model
@RequestMapping("/test20")
public String test20(Model model) {
    model.addAttribute("name", "任我行");
    ArrayList<String> list = new ArrayList<String>();
    list.add("Anna");
    list.add("Jay");
    list.add("Joe");
    list.add("John");
    model.addAttribute("list", list);
    
    HashMap<String, Integer> map = new HashMap<String, Integer>();
    map.put("a", 12);
    map.put("b", 23);
    map.put("c", 34);
    model.addAttribute("map", map);
    return SUCCESS;
}

 

5、使用Map存儲數據

// 存儲數據:Map
@RequestMapping("/test21")
public String test21(Map<String, Object> map) {
    map.put("name", "任我行");
    ArrayList<String> list = new ArrayList<String>();
    list.add("Anna");
    list.add("Jay");
    list.add("Joe");
    list.add("John");
    map.put("list", list);
    return SUCCESS;
}

 

6、使用ModelMap存儲數據:

  ModelMap對象主要用於傳遞控制方法處理數據到結果頁面,也就是說我們把結果頁面上需要的數據放到ModelMap對象中即可,他的作用類似於request對象的setAttribute方法的作用,用來在一個請求過程中傳遞處理的數據。通過以下方法向頁面傳遞參數:
addAttribute(String key,Object value);
  在頁面上可以通過el表達式$key或者bboss的一系列數據展示標簽獲取並展示modelmap中的數據。 modelmap本身不能設置頁面跳轉的url地址別名或者物理跳轉地址,那么我們可以通過控制器方法的返回值來設置跳轉url地址別名或者物理跳轉地址。

// 存儲數據:使用ModelMap存儲數據
@RequestMapping("/test23")
public String test23(String name, Integer age, ModelMap model) {
    model.addAttribute("name", name);
    model.addAttribute("age", age);
    return SUCCESS;
}

 

 

6、將請求參數保存一份到session當中

在類上加上注解:@SessionAttributes

@SessionAttributes(names={"name", "age"}, types={String.class, Integer.class})

 方法代碼:

// 存儲數據:將請求參數保存一份到session當中
@RequestMapping("/test22")
public String test22(String name, Integer age, ModelMap model) {
    return SUCCESS;
}

 結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM