Java 使用多模块构建时jsp上的HTTP状态404
我通过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中的视图按以下方式配置: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
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映射看起来如何?