java - 服务器在错误的目录下寻找jsp Spring MVC + Tomcat

标签 java spring-mvc jsp tomcat

在我的 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/

相关文章:

java - Roo 项目与 mysql for heroku

java - Controller 中的 Spring AOP

java - JSTL forEach 标签不遍历集合

jquery - Spring radiobutton jquery onchange 功能不起作用?

java - 曼哈顿布局算法

java - 可扩展组件以隐藏或取消隐藏另一个组件

Java Swing 拆分 Pane View 布局

java - 如何将 DeferredResult 与 ListenableFuture 列表结合使用?

java - 如果类具有我无法使用的构建器模式,如何正确设置变量

java - Tomcat 6 : Importing utility class from WEB-INF/classes