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

解決springmvc使用@PathVariable路徑匹配問(wèn)題

 更新時(shí)間:2021年02月24日 09:26:13   作者:文文文文文哥  
這篇文章主要介紹了解決springmvc使用@PathVariable路徑匹配問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

一、問(wèn)題

今天作畢設(shè)的時(shí)候,在搭建ssm框架的使用使用springmvc的@PathVariable時(shí)出現(xiàn)了一個(gè)路徑匹配的問(wèn)題,最后花了點(diǎn)時(shí)間解決了。

代碼結(jié)構(gòu):

問(wèn)題內(nèi)容:

訪問(wèn)url為:

按照道理說(shuō),我應(yīng)該到j(luò)sp的index頁(yè)面去。最后的結(jié)果確實(shí)到了index頁(yè)面,可是由于該頁(yè)面引用了幾個(gè)css和js,報(bào)異常找不到。有使用過(guò)spring經(jīng)驗(yàn)的童鞋應(yīng)該知道使用如下代碼解決靜態(tài)資源的訪問(wèn)。

// 方法一
<mvc:default-servlet-handler/>
// 方法二
<mvc:resources location="/easyui/js/" mapping="/themes/**"/>
<mvc:resources location="/easyui/themes/" mapping="/js/**"/>

可是最后還是訪問(wèn)不到靜態(tài)資源。

于是我就想是因?yàn)锧PathVariable的原因嗎?于是在下面做了一個(gè)實(shí)驗(yàn)

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

實(shí)驗(yàn)的結(jié)果就是可以正確訪問(wèn)??礃幼雍孟翊_實(shí)是這樣。于是我又再一次訪問(wèn)上面的地址(http://localhost:8080/ksxt_v1/user/index),并且打開(kāi)控制臺(tái)來(lái)查看,如下:

從上面標(biāo)識(shí)的地方可以看出問(wèn)題的原因了,當(dāng)請(qǐng)求的URL為http://localhost:8080/ksxt_v1/user/index時(shí),它在請(qǐng)求靜態(tài)資源的時(shí)候也會(huì)把user帶上,我們的靜態(tài)資源肯定不是放在這個(gè)文件夾里面的了。最后的結(jié)局當(dāng)然是找不到了。

二、解決方法

上面的問(wèn)題產(chǎn)生是因?yàn)槲以谝渺o態(tài)文件使用的是相對(duì)路徑。

解決方法就是將其全部修改為絕對(duì)路徑。

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css" rel="external nofollow" >
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css" rel="external nofollow" >
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/js/jquery.easyui.min.js"></script>

最后完美解決。當(dāng)然應(yīng)該也有其它方式解決,暫時(shí)未想到。

補(bǔ)充:SpringMVC 請(qǐng)求路徑結(jié)尾存在.使用@PathVariable訪問(wèn)路徑內(nèi)容,路徑參數(shù)獲取不準(zhǔn)確的問(wèn)題

SpringMVC采用Get方式請(qǐng)求資源時(shí),如果請(qǐng)求路徑的結(jié)尾中帶有小數(shù)點(diǎn)(.)時(shí),同時(shí)使用@PathVariable訪問(wèn)路徑內(nèi)容時(shí),請(qǐng)求路徑中最后一個(gè)小數(shù)點(diǎn)及其后面的內(nèi)容會(huì)被Spring截?cái)鄟G棄

比如針對(duì)版本的訪問(wèn)

對(duì)于請(qǐng)求路徑:

http://host:port/program/module/download/apk/3.20.10

后端RequestMapping為

@RequestMapping(value="module/download/apk/{version}",method=RequestMethod.GET)
public void download(HttpSession session,HttpServletResponse response,@PathVariable("version")String version){
  //解析后獲得到的版本值為:3.20
}

又比如針對(duì)文件的訪問(wèn)

對(duì)于請(qǐng)求路徑:

http://host:port/program/viewFile/module/201612201231445.pdf

后端RequestMapping為

@RequestMapping(value="viewFile/{module}/{filename}",method=RequestMethod.GET)
public void viewFile(HttpSession session,HttpServletResponse response,@PathVariable String module, @PathVariable String filename){
  //解析后獲得到的文件名稱為201612201231445并沒(méi)有或追文件后綴
}

在確實(shí)需要使用以小數(shù)點(diǎn)的路徑進(jìn)行請(qǐng)求的話可以選擇如下兩種解決方案:

1、在路徑后加任意小數(shù)點(diǎn)結(jié)尾的字符串

http://host:port/program/module/download/apk/3.20.10.html

http://host:port/program/viewFile/module/201612201231445.pdf.jsp

2、使用Spring正則表達(dá)式(SpEL)

@RequestMapping(value="module/download/apk/{version:.+}",method=RequestMethod.GET)
@RequestMapping(value="viewFile/{module}/{filename:.+}",method=RequestMethod.GET)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法

    Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法,結(jié)合實(shí)例形式分析了java正則表達(dá)式中傳遞控制參數(shù)的功能與相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • SpringBoot實(shí)現(xiàn)動(dòng)態(tài)端口切換黑魔法

    SpringBoot實(shí)現(xiàn)動(dòng)態(tài)端口切換黑魔法

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實(shí)現(xiàn)動(dòng)態(tài)端口切換黑魔法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Spring?MVC項(xiàng)目中的異常處理詳解

    Spring?MVC項(xiàng)目中的異常處理詳解

    在Web開(kāi)發(fā)中 我們經(jīng)常會(huì)需要處理各種異常,這篇文章主要給大家介紹了關(guān)于Spring?MVC項(xiàng)目中異常處理的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Spring Boot 項(xiàng)目啟動(dòng)失敗的解決方案

    Spring Boot 項(xiàng)目啟動(dòng)失敗的解決方案

    這篇文章主要介紹了Spring Boot 項(xiàng)目啟動(dòng)失敗的解決方案,幫助大家更好的理解和學(xué)習(xí)使用Spring Boot,感興趣的朋友可以了解下
    2021-03-03
  • sharding-jdbc讀寫分離原理詳細(xì)解析

    sharding-jdbc讀寫分離原理詳細(xì)解析

    這篇文章主要介紹了sharding-jdbc讀寫分離原理詳細(xì)解析,很多時(shí)候,為了應(yīng)付DB的高并發(fā)讀寫,我們會(huì)采用讀寫分離技術(shù),讀寫分離指的是利用數(shù)據(jù)庫(kù)主從技術(shù)(把數(shù)據(jù)復(fù)制到多個(gè)節(jié)點(diǎn)中),分散讀多個(gè)庫(kù)以支持高并發(fā)的讀,需要的朋友可以參考下
    2023-12-12
  • Spring框架十一種常見(jiàn)異常的解決方法匯總

    Spring框架十一種常見(jiàn)異常的解決方法匯總

    今天小編就為大家分享一篇關(guān)于Spring框架十一種常見(jiàn)異常的解決方法匯總,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Java實(shí)現(xiàn)拖拽列表項(xiàng)的排序功能

    Java實(shí)現(xiàn)拖拽列表項(xiàng)的排序功能

    這篇文章主要介紹了Java實(shí)現(xiàn)拖拽列表項(xiàng)的排序功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • Java將不同的List集合復(fù)制到另一個(gè)集合常見(jiàn)的方法

    Java將不同的List集合復(fù)制到另一個(gè)集合常見(jiàn)的方法

    在Java中,有時(shí)候我們需要將一個(gè)List對(duì)象的屬性值復(fù)制到另一個(gè)List對(duì)象中,使得兩個(gè)對(duì)象的屬性值相同,這篇文章主要介紹了Java將不同的List集合復(fù)制到另一個(gè)集合常見(jiàn)的方法,需要的朋友可以參考下
    2024-09-09
  • Java Calendar日歷類原理及使用方法

    Java Calendar日歷類原理及使用方法

    這篇文章主要介紹了Java Calendar日歷類原理及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring事務(wù)管理配置文件問(wèn)題排查

    Spring事務(wù)管理配置文件問(wèn)題排查

    這篇文章主要介紹了Spring事務(wù)管理配置文件問(wèn)題排查,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

房产| 大宁县| 拉萨市| 莎车县| 通江县| 萝北县| 蒲城县| 永春县| 宁强县| 阳高县| 仪征市| 南召县| 凯里市| 新竹市| 徐水县| 宝山区| 许昌县| 霍邱县| 建瓯市| 上栗县| 镇赉县| 宁武县| 翁牛特旗| 靖宇县| 青田县| 蛟河市| 突泉县| 太仆寺旗| 三门峡市| 上蔡县| 法库县| 张家川| 犍为县| 宝清县| 赤壁市| 赤城县| 龙川县| 秀山| 沅江市| 锡林郭勒盟| 翁牛特旗|