溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)

發(fā)布時間:2022-02-07 10:32:15 來源:億速云 閱讀:135 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”吧!

SpringMVC支持路徑中的占位符。

可以通過路徑的方式來傳參。restful風(fēng)格。使用{}做占位符在路徑中指定參數(shù),使用@PathVariable注解在參數(shù)列表中指定。

<a th:href="@{/test/1}">傳了參數(shù)</a>
@RequestMapping("/test/{id}")
public String test(@PathVariable("id")Integer id){
    System.out.println(id);
    return "index";
}

如果使用了占位符則請求地址必須有值,否則會報404錯誤。

獲取請求參數(shù)

使用ServletAPI獲?。ɑ静挥茫?/p>

@RequestMapping("/testParam")
public String Param(HttpServletRequest request){
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    return "index";
}

通過控制器的形參獲?。ūWC參數(shù)名相同的情況下)牛逼

<a th:href="@{/testParam(username='admin',password='123')}">傳了參數(shù)</a>
@RequestMapping("/testParam")
public String testParam(String username,String password){
    System.out.println("username:"+username+",password:"+password);
    return "index";
}

RequestParam

請求參數(shù)和控制器形參創(chuàng)建映射關(guān)系。

  • Value

  • Required

  • DefaultValue

使用實體類接受請求參數(shù)

@RequestMapping("/testPojo")
public String testPojo(User user){
    System.out.println(user);
    return "index";
}

配置過濾器,處理亂碼問題

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--設(shè)置字符集-->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!--強(qiáng)制響應(yīng)字符集-->
    <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

域?qū)ο蠊蚕頂?shù)據(jù)

使用原生ServletAPI向request域?qū)ο蠊蚕頂?shù)據(jù)(不用)

@RequestMapping("/test")
public String test(HttpServletRequest request){
    request.setAttribute("hello","hello");
    return "index";
}

使用ModelAndView對象

返回值類型為ModelAndView

//使用ModelAndView對象的方式
@RequestMapping("/")
public ModelAndView toIndex(HttpServletRequest request){
    ModelAndView mav = new ModelAndView();
    //設(shè)置共享數(shù)據(jù)
    mav.addObject("result","mavResult");
    //設(shè)置視圖名稱
    //視圖名稱=邏輯視圖名稱。
    mav.setViewName("index");
    return mav;
}

使用Model對象

Model是一個接口,因此不能像ModelAndView那樣去new。

//使用Model對象的方式
@RequestMapping("/")
public String toIndexModel(Model model){
    //設(shè)置共享數(shù)據(jù)
    model.addAttribute("result","ModelResult");
    return "index";
}

使用Map集合

//使用Map對象的方式
@RequestMapping("/")
public String toIndexModel(Map<String,Object> map){
    //設(shè)置共享數(shù)據(jù)
    map.put("result","MapResult");
    return "index";
}

使用ModelMap

ModelMap的實例是由mvc框架自動創(chuàng)建并作為控制器方法參數(shù)傳入,無需也不能自己創(chuàng)建。

如自己創(chuàng)建,則無法共享數(shù)據(jù)。

//使用ModelMap對象的方式
@RequestMapping("/")
public String toIndexModel(ModelMap modelMap){
    //設(shè)置共享數(shù)據(jù)
    modelMap.addAttribute("result","ModelMapResult");
    return "index";
}

到此,相信大家對“SpringMVC請求域?qū)ο蟮臄?shù)據(jù)共享怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI