在我的 Spring MVC 应用程序中,我有下一个 ViewResolver:
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("WEB-INF/view/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
我的 Controller 有两种方法:
@Controller
@RequestMapping("/test")
public class CheckPageController {
@RequestMapping(method = RequestMethod.GET)
public String test() {
return "myview";
}
@RequestMapping(method = RequestMethod.GET, value = "/testagain")
public String anotherTest() {
return "myview";
}
}
我的 .jsp 文件在 WEB-INF/view
目录
当我转到 /test
时,服务器完美打开 myview.jsp
当我再次访问 /test/test
时,服务器接下来显示:
Message /test/WEB-INF/view/myview.jsp
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
为什么要在这个路径中寻找myview.jsp
?
为什么路径以/test
开头?
最佳答案
只需将 resolver.setPrefix("WEB-INF/view/");
更改为 resolver.setPrefix("/WEB-INF/view/");
因为如果您之前没有添加斜杠,那么它将在应用程序的同一目录中搜索,并且显然找不到资源。所以它不会工作。
关于java - 服务器在错误的目录下寻找jsp Spring MVC + Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051085/