Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 RequestMappingHandlerMapping:未找到[/WEB-INF/jsp/home.jsp]的处理程序方法_Java_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Java RequestMappingHandlerMapping:未找到[/WEB-INF/jsp/home.jsp]的处理程序方法

Java RequestMappingHandlerMapping:未找到[/WEB-INF/jsp/home.jsp]的处理程序方法,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,也许一切都好,但我有错误。基本上,我在应用程序属性文件中添加视图解析器属性,然后运行此项目并打开浏览器,浏览器显示此错误未找到404文件的白标签错误页面。我不明白,请帮助我,并建议如何解决这个问题,我是Spring Boot的新手。在这篇文章中,我详细介绍了我的项目 错误 2018-04-07 12:11:51.661 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Returning [o

也许一切都好,但我有错误。基本上,我在应用程序属性文件中添加视图解析器属性,然后运行此项目并打开浏览器,浏览器显示此错误未找到404文件的白标签错误页面。我不明白,请帮助我,并建议如何解决这个问题,我是Spring Boot的新手。在这篇文章中,我详细介绍了我的项目

错误

 2018-04-07 12:11:51.661 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Returning [org.springframework.web.servlet.view.InternalResourceView: name 'home'; URL [/WEB-INF/jsp/home.jsp]] based on requested media type 'text/html'
2018-04-07 12:11:51.661 DEBUG 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Rendering view [org.springframework.web.servlet.view.InternalResourceView: name 'home'; URL [/WEB-INF/jsp/home.jsp]] in DispatcherServlet with name 'dispatcherServlet'
2018-04-07 12:11:51.661 TRACE 3740 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView  : Rendering view with name 'home' with model {} and static attributes {}
2018-04-07 12:11:51.684 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView  : Forwarding to resource [/WEB-INF/jsp/home.jsp] in InternalResourceView 'home'
2018-04-07 12:11:51.687 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Bound request context to thread: org.apache.catalina.core.ApplicationHttpRequest@3087f725
2018-04-07 12:11:51.687 DEBUG 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/WEB-INF/jsp/home.jsp]
2018-04-07 12:11:51.687 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@7ba6a25a] in DispatcherServlet with name 'dispatcherServlet'
2018-04-07 12:11:51.687 TRACE 3740 --- [nio-8080-exec-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : No handler mapping found for [/WEB-INF/jsp/home.jsp]
2018-04-07 12:11:51.687 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler map [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping@6d6680cb] in DispatcherServlet with name 'dispatcherServlet'
2018-04-07 12:11:51.687 DEBUG 3740 --- [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /WEB-INF/jsp/home.jsp
2018-04-07 12:11:51.690 DEBUG 3740 --- [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/WEB-INF/jsp/home.jsp]
2018-04-07 12:11:51.690 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler map [org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping@1a14f49d] in DispatcherServlet with name 'dispatcherServlet'
2018-04-07 12:11:51.690 TRACE 3740 --- [nio-8080-exec-1] o.s.w.s.h.BeanNameUrlHandlerMapping      : No handler mapping found for [/WEB-INF/jsp/home.jsp]
2018-04-07 12:11:51.690 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@7b19df79] in DispatcherServlet with name 'dispatcherServlet'
2018-04-07 12:11:51.690 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Matching patterns for request [/WEB-INF/jsp/home.jsp] are [/**]
2018-04-07 12:11:51.691 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : URI Template variables for request [/WEB-INF/jsp/home.jsp] are {}
2018-04-07 12:11:51.692 DEBUG 3740 --- [nio-8080-exec-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapping [/WEB-INF/jsp/home.jsp] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@73797478]]] and 1 interceptor
2018-04-07 12:11:51.692 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler adapter [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter@44abba94]
2018-04-07 12:11:51.692 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@f0e0b58]
2018-04-07 12:11:51.693 DEBUG 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Last-Modified value for [/WEB-INF/jsp/home.jsp] is: -1
2018-04-07 12:11:51.693 TRACE 3740 --- [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler     : Path contains "WEB-INF" or "META-INF".
2018-04-07 12:11:51.693 TRACE 3740 --- [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler     : Ignoring invalid resource path [WEB-INF/jsp/home.jsp]
2018-04-07 12:11:51.693 TRACE 3740 --- [nio-8080-exec-1] o.s.w.s.r.ResourceHttpRequestHandler     : No matching resource found - returning 404
2018-04-07 12:11:51.693 DEBUG 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2018-04-07 12:11:51.693 TRACE 3740 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Cleared thread-bound request context: org.apache.catalina.core.ApplicationHttpRequest@3087f725
build.gradle

    buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.ethxpay.book.ticket.app'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

configurations {
    providedRuntime
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.apache.tomcat.emded:tomcat-embed-japer')

    runtime('org.springframework.boot:spring-boot-devtools')
    runtime('mysql:mysql-connector-java')

    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')

    testCompile('org.springframework.boot:spring-boot-starter-test')

    compile group: 'javax.servlet', name: 'servlet-api', version: '3.0' 
    compile group: 'javax.servlet.jsp', name: 'jsp-api', version: '2.1' 
}
应用程序属性

    #Database Properties
spring.datasource.url=jdbc:mysql://localhost:3306/customerdb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root

#View Resolver
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

#JPA/Hibernate properties
spring.jpa.show-sql=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

#Log
logging.level.org.hibernate.SQL:debug
logging.level.org.springframework: TRACE
logging.level.com: TRACE
    @RestController
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @RequestMapping("/")
    public ModelAndView index() {
        return new ModelAndView("home");
    }

    @PostMapping("/createEmp")
    public void createEmp(HttpServletRequest request, HttpServletResponse response) {
        Employee emp = new Employee(request.getParameter("name"), request.getParameter("tel"),
                request.getParameter("address"), Double.parseDouble(request.getParameter("sal")));

        employeeService.create(emp);
    }
}
控制器类

    #Database Properties
spring.datasource.url=jdbc:mysql://localhost:3306/customerdb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root

#View Resolver
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

#JPA/Hibernate properties
spring.jpa.show-sql=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

#Log
logging.level.org.hibernate.SQL:debug
logging.level.org.springframework: TRACE
logging.level.com: TRACE
    @RestController
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @RequestMapping("/")
    public ModelAndView index() {
        return new ModelAndView("home");
    }

    @PostMapping("/createEmp")
    public void createEmp(HttpServletRequest request, HttpServletResponse response) {
        Employee emp = new Employee(request.getParameter("name"), request.getParameter("tel"),
                request.getParameter("address"), Double.parseDouble(request.getParameter("sal")));

        employeeService.create(emp);
    }
}
项目种子


在使用Maven和我时,缺少这些依赖项-

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
  • 添加jasper依赖项对我来说很有效
  • 嵌入式tomcat需要jasper依赖项在Spring boot中呈现jsp视图 应用程序

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    
    
    org.apache.tomcat.embed
    汤姆卡特·贾斯珀
    
  • 如果您需要编写迭代,那么jsp页面中的控制语句 在pom.xml中包括JSTL,即JSP标准标记库,如下所示:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    
    
    javax.servlet
    jstl
    

编译组:'org.apache.tomcat.embed',名称:'tomcat-embed-jasper',版本:'9.0.7'


上面的依赖关系对我有效。

不要将JSP放入
WEB-INF
。它应该更高一级。我不明白,请告诉我更多详细信息@severity你的JSP应该在
src/main/webapp
文件夹中,而不是
WEB-INF
中。另外,
createEmp
方法应该返回一个
ModelAndView
实例。这是否能解决您的问题我还不能说,但这两点我觉得是不正确的。@ServerItyon不起作用在添加jasper和jstl依赖项之后,我的spring boot web应用程序中的白标签问题得到了解决。谢谢你,阿杰·库马尔。