Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Java 使用多模块构建时jsp上的HTTP状态404_Java_Spring_Maven_Spring Mvc_Servlets - Fatal编程技术网

Java 使用多模块构建时jsp上的HTTP状态404

Java 使用多模块构建时jsp上的HTTP状态404,java,spring,maven,spring-mvc,servlets,Java,Spring,Maven,Spring Mvc,Servlets,我通过Eclipse在Tomcat中运行foo.war。我正在使用SpringMVC。当我尝试查看此上下文的索引页时: 我得到:HTTP状态404-/foo/WEB-INF/pages/index.jsp 我的Maven项目有一个src/main/webapp/WEB-INF/jsp/pages/index.jsp 出于某种原因,这必须在.war maven模块中;它不能作为maven中的依赖项包含在war中的单独jar模块中。这很奇怪,因为Tomcat在这个单独的maven模块中获取了我的s

我通过Eclipse在Tomcat中运行foo.war。我正在使用SpringMVC。当我尝试查看此上下文的索引页时:

我得到:HTTP状态404-/foo/WEB-INF/pages/index.jsp

我的Maven项目有一个src/main/webapp/WEB-INF/jsp/pages/index.jsp

出于某种原因,这必须在.war maven模块中;它不能作为maven中的依赖项包含在war中的单独jar模块中。这很奇怪,因为Tomcat在这个单独的maven模块中获取了我的servlet配置

Spring Mvc中的视图按以下方式配置:

InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/pages/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
我的控制器是这样的:

@RequestMapping("/")
public String index(Map<String, Object> model) throws Exception {
    return "index";
}
@RequestMapping(“/”)
公共字符串索引(映射模型)引发异常{
返回“索引”;
}
servlet映射当前为“/”

如何将jsp放在单独的模块中

编辑:重写,因为有一个单独的问题混淆了问题

编辑:更改了一些。似乎涉及Maven多模块构建…

好的

因此,它将jsp放在一个单独的jar中来完成它

我应该使用:

META-INF/资源

不是

WEB-INF

另见:


注意,不使用jsp可能更容易,jsp必须从Spring返回servlet容器。相反,Velocity/Freemarker/Thymeleaf模板可以完全使用Spring进行管理。将模板放在src/main/resources中也很方便,而不是放在这些丑陋的META-INF/WEB-INF文件夹中。

对于我最初问题中的资源(Spring Mvc asset pipeline),这只是一个转移视线的问题,所以我认为这只是解决内部视图的问题。我不确定你的问题是什么。InternalResourceViewResolver中的前缀和RequestMapping中的url已相对于应用程序上下文路径。你想达到什么目标?你面临的问题是什么?如果你的目标是转发一个不属于你的webapp的视图,那是不可能的。每个网络应用程序都是独立的。我已经重写了我的问题,现在应该更清楚了,你的控制器被注射了吗?控制器似乎没有调用方法
index
。您的servlet映射看起来如何?