配置了<mvc:resource>导致访问控制器方法无效

今天想着静态资源的释放(html网页,js资源),首先是根据以前学的,直接添加<mvc:resources >标签进行静态资源的放行,后来发现我访问一个控制器中的方法不能执行了,而且控制台发警告:
警告 [http-nio-80-exec-10] org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI [/cloud_disk_war_exploded/interface/getDeployUrl] in DispatcherServlet with name 'dispatcherServlet'
然后捣鼓了半天,网上说在web.xml中添加一个

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

然后我加上,啥用没有,还是一样的警告。然后我尝试把添加的

 <mvc:resources mapping="/html/**" location="/html/"/>
<mvc:resources mapping="/js/**" location="/js/"/>

给删掉,发现html的的能访问了,但是我js的访问不了了啊。我又试着添加一条js的mvc:resources,发现警告又来了。。。
最后百度了一番,发现是这个mvc:resource标签将控制器方法失效了,所以我访问不到类里面的方法,就404了,解决方法是添加

<mvc:annotation-driven/>
添加了这条标签之后静态资源可以正常访问,控制器里的方法也可以正常执行(然后我将web.xml添加了defalut删掉了,效果感觉差不多)。
这条标签的作用是向工厂中注册几个关键的类,其中包括

RequestMappingHandlerMapping
BeanNameUrlHandlerMapping

功能是处理请求映射的。其中第一个是处理@RequestMapping注解的。第二个会将controller类的名字映射为请求url,之前我没加可能是因为他把我们的请求当成释放静态资源了,使得@RequestMapping不生效了。
具体的可以参考这篇文章:https://my.oschina.net/HeliosFly/blog/205343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值