zoukankan      html  css  js  c++  java
  • Spring MVC的困惑urlpattern /和/*的区别

    今天在写项目时发现一个spring 总是报org.springframework.web.servlet.DispatcherServlet noHandlerFound警告: No mapping found for HTTP request with URI [/myspring/WEB-INF/jsp/index.jsp] in DispatcherServlet with name ‘spring’ 错误,也就是找不到我的index.jsp 。

    Java代码如下:

    @RequestMapping(“/test/exception”)
    public ModelAndView doTestException01(String name) {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject(“name”, name);
    modelAndView.setViewName(“index”);
    return modelAndView;
    }

    Spring配置文件如下:

    <bean id=”viewResolver”
    class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>
    <property name=”prefix” value=”/WEB-INF/jsp/” />
    <property name=”suffix” value=”.jsp” />
    </bean>

    web配置文件如下:

    <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/*</url-pattern>
    </servlet-mapping>

    后来发现原来是web配置文件出错了,出错的原因是url-pattern的问题,将<url-pattern>/*</url-pattern>改成

    <url-pattern>/</url-pattern>后,问题解决了。

    其中/和/*的区别:
    < url-pattern > / </ url-pattern >   不会匹配到*.jsp,即:*.jsp不会进入spring的 DispatcherServlet类 。
    < url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。

    总之,关于web.xml的url映射的小知识:
    < url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
    < url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)

  • 相关阅读:
    Zend Guard 7 , Zend Guard Loader处理PHP加密
    [转]pHP源码加密方法调查
    使用USB Key(加密狗)实现身份认证
    4*4行列式矩阵键盘
    HDU-2546-饭卡
    HDU-2073-无限的路
    HDU-2065-"红色病毒"问题
    HDU-2063-过山车
    HDU-2060-Snooker
    HDU-2056-Rectangles
  • 原文地址:https://www.cnblogs.com/tomtiantao/p/6866043.html
Copyright © 2011-2022 走看看