springmvc使用@PathVariable路径匹配问题

一、问题

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

代码结构:

springmvc使用@PathVariable路径匹配问题_第1张图片
这里写图片描述

问题内容:

springmvc使用@PathVariable路径匹配问题_第2张图片
这里写图片描述

访问url为:


这里写图片描述

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

// 方法一

// 方法二


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

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

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

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

springmvc使用@PathVariable路径匹配问题_第3张图片
这里写图片描述

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

二、解决方法

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

springmvc使用@PathVariable路径匹配问题_第4张图片
这里写图片描述

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

 




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

你可能感兴趣的:(springmvc使用@PathVariable路径匹配问题)