springmvc使用@PathVariable路径匹配问题

来源:互联网 发布:小米3怎样用4g网络 编辑:程序博客网 时间:2024/05/20 11:46

一、问题

今天作毕设的时候,在搭建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>

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

原创粉丝点击