欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC中的Model對象用法說明

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

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

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

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

    /**
     * ModelAndView 綁定數(shù)據(jù)到視圖 (ModelMap用于傳遞數(shù)據(jù) View對象用于跳轉(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對象,往session對象里放數(shù)據(jù),這里用一個(gè)注解完美解決)

基本格式如下:

/**
 * @SessionAttributes 除了可以通過屬性名指定需要放到會(huì)話中的屬性外(實(shí)際上使用的是 value 屬性值),
 * 還可以通過模型屬性的對象類型指定哪些模型屬性需要放到會(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
  * 請求轉(zhuǎn)發(fā) forward: 不需要任何處理
  * 請求重定向 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是每次請求中都存在的默認(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)文章

  • java根據(jù)不同的參數(shù)調(diào)用不同的實(shí)現(xiàn)類操作

    java根據(jù)不同的參數(shù)調(diào)用不同的實(shí)現(xiàn)類操作

    這篇文章主要介紹了java根據(jù)不同的參數(shù)調(diào)用不同的實(shí)現(xiàn)類操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java正則表達(dá)式表單驗(yàn)證類工具類(驗(yàn)證郵箱、手機(jī)號(hào)碼、qq號(hào)碼等)

    java正則表達(dá)式表單驗(yàn)證類工具類(驗(yàn)證郵箱、手機(jī)號(hào)碼、qq號(hào)碼等)

    這篇文章主要介紹了java使用正則表達(dá)式進(jìn)行表單驗(yàn)證工具類,可以驗(yàn)證郵箱、手機(jī)號(hào)碼、qq號(hào)碼等方法,需要的朋友可以參考下
    2014-04-04
  • Java利用三目運(yùn)算符比較三個(gè)數(shù)字的大小

    Java利用三目運(yùn)算符比較三個(gè)數(shù)字的大小

    今天小編就為大家分享一篇關(guān)于Java利用三目運(yùn)算符比較三個(gè)數(shù)字的大小,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 一文徹底搞定Java中常用集合的排序方法

    一文徹底搞定Java中常用集合的排序方法

    在某些特殊的場景下我們需要在Java程序中對List集合進(jìn)行排序操作,下面這篇文章主要給大家介紹了關(guān)于Java中常用集合的排序方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java日期格式化的實(shí)現(xiàn)(@JsonFormat和@JSONField)

    Java日期格式化的實(shí)現(xiàn)(@JsonFormat和@JSONField)

    本文主要介紹了Java日期格式化的實(shí)現(xiàn),主要介紹了@JsonFormat和@JSONField兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • SpringBoot使用Jackson配置全局時(shí)間日期格式

    SpringBoot使用Jackson配置全局時(shí)間日期格式

    本文主要介紹了SpringBoot使用Jackson配置全局時(shí)間日期格式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java中CyclicBarrier的用法分析

    Java中CyclicBarrier的用法分析

    CyclicBarrier和CountDownLatch一樣,都是關(guān)于線程的計(jì)數(shù)器。用法略有不同,測試代碼如下:
    2013-03-03
  • mybatis如何根據(jù)表逆向自動(dòng)化生成代碼實(shí)例

    mybatis如何根據(jù)表逆向自動(dòng)化生成代碼實(shí)例

    逆向工程是一個(gè)專門為 MyBatis 框架使用者設(shè)計(jì)的代碼生成器,可以根據(jù)數(shù)據(jù)庫中的表字段名,自動(dòng)生成 POJO 類,mapper 接口與 SQL 映射文件,這篇文章主要給大家介紹了關(guān)于mybatis如何根據(jù)表逆向自動(dòng)化生成代碼的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Spring boot 無法注入service問題

    Spring boot 無法注入service問題

    這篇文章主要介紹了Spring boot 無法注入service問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解SpringBoot簡化配置分析總結(jié)

    詳解SpringBoot簡化配置分析總結(jié)

    這篇文章主要介紹了詳解SpringBoot簡化配置分析總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評論