最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC中的Model對(duì)象用法說明

 更新時(shí)間:2021年06月23日 15:00:38   作者:捉眼鏡蛇煲湯  
這篇文章主要介紹了SpringMVC中的Model對(duì)象用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

模型對(duì)象的作用主要是保存數(shù)據(jù),可以借助它們將數(shù)據(jù)帶到前端。

常用的模型對(duì)象有以下幾個(gè):

ModelAndView(顧名思義,模型和視圖,既可以攜帶數(shù)據(jù)信息,也可以攜帶視圖信息,常規(guī)用法如下)

    /**
     * ModelAndView 綁定數(shù)據(jù)到視圖 (ModelMap用于傳遞數(shù)據(jù) View對(duì)象用于跳轉(zhuǎn))
     * @return
     * @throws Exception
     */
    @RequestMapping(value="/case2")
    public ModelAndView case2() throws Exception {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("/demo03/model.jsp");
        mav.addObject("sex", "boy");
        return mav;
    }

Map,和modelAndView原理一樣,同樣是將數(shù)據(jù)一個(gè)一個(gè)放在requestScope中,前端取數(shù)據(jù)同樣也是${模型數(shù)據(jù)}

    /**
     * 目標(biāo)方法可以添加 Map 類型(實(shí)際上也可以是 Model 類型或 ModelMap 類型)的參數(shù). 
     * @param map
     * @return
     */
    @RequestMapping("/case")
    public String case1(Map map) throws Exception{
        map.put("sex", "獲取成功!!");
        return "/demo03/model.jsp";
    }

@SessionAttributes(相當(dāng)于創(chuàng)建session對(duì)象,往session對(duì)象里放數(shù)據(jù),這里用一個(gè)注解完美解決)

基本格式如下:

/**
 * @SessionAttributes 除了可以通過屬性名指定需要放到會(huì)話中的屬性外(實(shí)際上使用的是 value 屬性值),
 * 還可以通過模型屬性的對(duì)象類型指定哪些模型屬性需要放到會(huì)話中(實(shí)際上使用的是 types 屬性值)
 * 注意: 該注解只能放在類的上面. 而不能修飾方法當(dāng)于在map中和session中 各存放了一個(gè)實(shí)體類,一個(gè)String類的字符串
 */
@SessionAttributes("user")
@Controller
public class SessionController { 
 @ModelAttribute("user")
 public User getUser(){
  User user = new User();
  return user;
 }
 /**
  * http://localhost:8080/s/s1?id=1
  * 請(qǐng)求轉(zhuǎn)發(fā) forward: 不需要任何處理
  * 請(qǐng)求重定向 redirect: 使用SessionAttribute方式 用于在重定向中傳至  將值存儲(chǔ)在session中 【用完記住清除】
  * @return
  * @throws Exception
  */
 @RequestMapping(value="/s1",method=RequestMethod.GET)
 public String case1(@ModelAttribute("user") User user) throws Exception{
  return "redirect:/s2";
 }
 
 @RequestMapping(value="/s2",method=RequestMethod.GET)
 public String case2(Map map,HttpServletResponse res,SessionStatus sessionStatus) throws Exception{
  User user=(User)map.get("user");
  res.getWriter().println(user.getId());
  sessionStatus.setComplete();
  return null;
 }
}

SpringMVC中的Model和ModelAndView的區(qū)別

1.主要區(qū)別

Model是每次請(qǐng)求中都存在的默認(rèn)參數(shù),利用其addAttribute()方法即可將服務(wù)器的值傳遞到jsp頁面中;

ModelAndView包含modelview兩部分,使用時(shí)需要自己實(shí)例化,利用ModelMap用來傳值,也可以設(shè)置view的名稱

2.例子

1)使用Model傳值

@RequestMapping(value="/list-books")
 private String getAllBooks(Model model){
  logger.error("/list-books");
  List<Book> books= bookService.getAllBooks();
  model.addAttribute("books", books);
  return "BookList";
 }

jsp頁面利${books}即可取出其中的值

2)使用ModelAndView傳遞值有兩種方法,不同方法在jsp頁面的取值方式不同,同時(shí)設(shè)置了view的名稱

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
        Object handler, Exception ex) {
        LibraryException le=null;
        if(ex instanceof LibraryException){
            le=(LibraryException)ex;
        }else{
            le=new LibraryException("系統(tǒng)未知異常!");
        }
 
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("exception",le.getMessage());
        modelAndView.getModel().put("exception",le.getMessage());
        modelAndView.setViewName("error"); 
        return modelAndView;
    }

jsp${requestScope.exception1}可以取出exception1的值;

jsp${exception2}可以取出exception2的值

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA2022.1創(chuàng)建maven項(xiàng)目規(guī)避idea2022新建maven項(xiàng)目卡死無反應(yīng)問題

    IDEA2022.1創(chuàng)建maven項(xiàng)目規(guī)避idea2022新建maven項(xiàng)目卡死無反應(yīng)問題

    這篇文章主要介紹了IDEA2022.1創(chuàng)建maven項(xiàng)目規(guī)避idea2022新建maven項(xiàng)目卡死無反應(yīng)問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • SpringMVC框架實(shí)現(xiàn)上傳圖片的示例代碼

    SpringMVC框架實(shí)現(xiàn)上傳圖片的示例代碼

    本篇文章主要介紹了SpringMVC框架實(shí)現(xiàn)上傳圖片的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java數(shù)據(jù)結(jié)構(gòu)專題解析之棧和隊(duì)列的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)專題解析之棧和隊(duì)列的實(shí)現(xiàn)

    從數(shù)據(jù)結(jié)構(gòu)的定義看,棧和隊(duì)列也是一種線性表。其不同之處在于棧和隊(duì)列的相關(guān)運(yùn)算具有特殊性,只是線性表相關(guān)運(yùn)算的一個(gè)子集。更準(zhǔn)確的說,一般線性表的插入、刪除運(yùn)算不受限制,而棧和隊(duì)列上的插入刪除運(yùn)算均受某種特殊限制。因此,棧和隊(duì)列也稱作操作受限的線性表
    2021-10-10
  • SpringBoot業(yè)務(wù)邏輯異常的處理方法介紹

    SpringBoot業(yè)務(wù)邏輯異常的處理方法介紹

    本篇文章為大家展示了如何在SpringBoot中統(tǒng)一處理邏輯異常,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲
    2022-09-09
  • Java編程偽共享與緩存行填充

    Java編程偽共享與緩存行填充

    這篇文章主要介紹了Java編程偽共享與緩存行填充,下面文章Disruptor提到的CPU緩存話題,做了一些嘗試和研究,如Disruptor所說,CPU有緩存?zhèn)喂蚕淼膯栴},并且通過緩存行填充能完美的解決這個(gè)問題,需要的朋友可以參考一下
    2021-09-09
  • Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹

    Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹

    這篇文章主要介紹了Docker 存儲(chǔ)驅(qū)動(dòng)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • springmvc級(jí)聯(lián)屬性處理無法轉(zhuǎn)換異常問題解決

    springmvc級(jí)聯(lián)屬性處理無法轉(zhuǎn)換異常問題解決

    這篇文章主要介紹了springmvc級(jí)聯(lián)屬性處理無法轉(zhuǎn)換異常問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java?ResourceBundle讀取properties文件方式

    java?ResourceBundle讀取properties文件方式

    這篇文章主要介紹了java?ResourceBundle讀取properties文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot?@Transactional事務(wù)不生效排查方式

    SpringBoot?@Transactional事務(wù)不生效排查方式

    這篇文章主要介紹了SpringBoot?@Transactional事務(wù)不生效排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Jmeter測(cè)試時(shí)遇到的各種亂碼問題及解決

    Jmeter測(cè)試時(shí)遇到的各種亂碼問題及解決

    這篇文章主要介紹了Jmeter測(cè)試時(shí)遇到的各種亂碼問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

阿鲁科尔沁旗| 淅川县| 新兴县| 淮滨县| 贵州省| 梁平县| 天峨县| 含山县| 兴业县| 安多县| 澄城县| 龙海市| 常宁市| 霍山县| 江安县| 普宁市| 茂名市| 禄丰县| 神农架林区| 襄垣县| 微博| 石台县| 望都县| 会东县| 平顶山市| 柳江县| 灵武市| 青州市| 博野县| 林州市| 庆元县| 江门市| 渝中区| 长阳| 连南| 白朗县| 腾冲县| 文山县| 砀山县| 堆龙德庆县| 台南市|