【问题标题】:url-pattern not working in spring mvc applicationurl-pattern 在 spring mvc 应用程序中不起作用
【发布时间】:2013-02-22 07:13:36
【问题描述】:

我在spring mvc框架上做了一个基本的应用。

当我在 web.xml 上编写以下 url 模式时:

<servlet-mapping>
        <servlet-name>springxml</servlet-name>
        <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>

并运行应用程序(使用 ../SpringMVCXML/welcome.jsp),它显示 HTTP 状态 404 错误。

当我更改 .jsp 以外的 url 模式时,应用程序运行良好。

为什么应用程序没有在 .jsp url 模式上运行?

我曾使用以下 java 类作为控制器。

@Controller
@RequestMapping(value="/welcome",method=RequestMethod.GET)
public class ControllerHello {
    @RequestMapping(method=RequestMethod.GET)
    public String printHello(ModelMap map) {
        map.addAttribute("message", "Hello Spring MVC Framework");
        return "hello";
    }
}

另外,我的 springxml-servlet.xml 有以下代码:

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

【问题讨论】:

    标签: spring-mvc web.xml url-pattern


    【解决方案1】:

    假设你还有 springxml servlet 也服务于 *.jsp 之外的其他视图(你的 web.xml 中可能有其他 servlet-mappings),情况如下:

    您为路径 /welcome 注册了一个控制器,而不是 /welcome.jsp。因此,/welcome.jsp 没有映射到 Spring mvc 控制器。 /welcome HelloController 将为您提供字符串输出 hello。

    /welcome.jsp 将给出错误 404,因为它位于 WEB-INF 中并且该 url 没有 Spring MVC 控制器。

    org.springframework.web.servlet.view.InternalResourceViewResolver 旨在将您的 jsp 文件放入 /WEB-INF。查看 http://www.mkyong.com/spring-mvc/spring-mvc-internalresourceviewresolver-example/ 以获得有关 InternalResourceResolver 作用的简单说明。基本上,它使 Spring MVC 能够使用不在公共资源中的 jsp 作为视图。 这不是将这些 jsps 注册为有效 url 的机制。

    url 在 requestmappings 中确定。

    【讨论】:

      【解决方案2】:

      您可能没有任何 spring 控制器映射到此 URL /welcome.jsp 你用的是什么版本的spring?如果您使用的是 spring 2.5 或更高版本,请尝试以下代码

      @RequestMapping(value = "welcome.jsp")
      public String welcomeJSP(){
          return "welcome";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-22
        • 1970-01-01
        • 2020-07-11
        • 2016-03-22
        • 2018-05-05
        • 1970-01-01
        相关资源
        最近更新 更多