Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring-MVC的奇怪行为_Spring Mvc - Fatal编程技术网

Spring-MVC的奇怪行为

Spring-MVC的奇怪行为,spring-mvc,Spring Mvc,我在web.xml中定义了常规servlet和Spring MVC dispatcherServlet(共存)。web.xml中到Spring MVC的DispatcherServlet的映射为“/admin/*”。我有一个常规servlet发出请求。getDispatcher()。转发到文件夹结构“/admin/…”下的jsp。由于这是内部前锋,我希望spring的dispatcherServlet不会引起注意。原来Spring的DispatcherServlet确实注意到了这一点,并给了我一

我在web.xml中定义了常规servlet和Spring MVC dispatcherServlet(共存)。web.xml中到Spring MVC的DispatcherServlet的映射为“/admin/*”。我有一个常规servlet发出请求。getDispatcher()。转发到文件夹结构“/admin/…”下的jsp。由于这是内部前锋,我希望spring的dispatcherServlet不会引起注意。原来Spring的DispatcherServlet确实注意到了这一点,并给了我一个没有找到这个JSP映射的借口

有人知道这里到底发生了什么吗? 更新:很抱歉,我没有把问题说清楚:

我们有一个不使用SpringMVC的现有应用程序。我们决定保持现有特性不变,并为任何其他新特性添加SpringMVC

下面是web.xml映射:

<servlet>
    <servlet-name>springRouted</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/mvc-config.xml</param-value>
    </init-param>
    <load-on-startup>4</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>springRouted</servlet-name>
    <url-pattern>/admin/*</url-pattern>
</servlet-mapping> 
<servlet-mapping>
   <servlet-name>existingServlet</servlet-name>
    <url-pattern>existing.do</url-pattern>
</servlet-mapping>

斯普林普劳特
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:spring/mvc-config.xml
4.
斯普林普劳特
/管理员/*
现有servlet
现有的
如果ExistingServelt调用request.getRequestDispatcher().forward(“/admin/…jsp”),那么Spring将报告一个无法找到“/admin/…jsp”映射的错误。调用request.getRequestDispatcher().forward(“/admin/…jsp”)似乎会使servlet容器重新检查web.xml并通过Spring的DispatchServlet重新路由。

如果我没有错,映射“/*”(star)意味着将所有扩展(.jsp、.js等)映射到dispatcherServlet

可能最简单的解决方案是使所有@RequestMapping都具有“.do”扩展,并将dispatcher servlet映射到“*.do”,例如:

@RequestMapping("/myPage1.do")
public String getMyPage1() {
    // Some logic here

    return "myPage1";
}

@RequestMapping("/myPage2.do")
public String getMyPage2() {
    // Some logic here

    return "myPage2";
}

// And so on
然后您必须更改web.xml,如下所示:

<servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/admin/*.do</url-pattern>
    </servlet-mapping>

调度员服务
/admin/*.do