美文网首页
springmvc使用@PathVariable路径匹配问题

springmvc使用@PathVariable路径匹配问题

作者: 隔壁老王的隔壁啊 | 来源:发表于2017-09-27 22:20 被阅读397次

一、问题

今天作毕设的时候,在搭建ssm框架的使用使用springmvc的@PathVariable时出现了一个路径匹配的问题,最后花了点时间解决了。

代码结构:

这里写图片描述

问题内容:

这里写图片描述

访问url为:


这里写图片描述

按照道理说,我应该到jsp的index页面去。最后的结果确实到了index页面,可是由于该页面引用了几个css和js,报异常找不到。有使用过spring经验的童鞋应该知道使用如下代码解决静态资源的访问。

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

可是最后还是访问不到静态资源。

于是我就想是因为@PathVariable的原因吗?于是在下面做了一个实验

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

实验的结果就是可以正确访问。看样子好像确实是这样。于是我又再一次访问上面的地址(http://localhost:8080/ksxt_v1/user/index),并且打开控制台来查看,如下:

这里写图片描述
从上面标识的地方可以看出问题的原因了,当请求的URL为http://localhost:8080/ksxt_v1/user/index时,它在请求静态资源的时候也会把user带上,我们的静态资源肯定不是放在这个文件夹里面的了。最后的结局当然是找不到了。

二、解决方法

上面的问题产生是因为我在引用静态文件使用的是相对路径。

这里写图片描述

解决方法就是将其全部修改为绝对路径。

 <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
<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>

最后完美解决。当然应该也有其它方式解决,暂时未想到,欢迎留言。

相关文章

网友评论

      本文标题:springmvc使用@PathVariable路径匹配问题

      本文链接:https://www.haomeiwen.com/subject/gyypextx.html