Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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配置spring boot mvc应用程序?_Java_Spring_Jsp_Spring Mvc_Spring Boot - Fatal编程技术网

Java 如何为JSP配置spring boot mvc应用程序?

Java 如何为JSP配置spring boot mvc应用程序?,java,spring,jsp,spring-mvc,spring-boot,Java,Spring,Jsp,Spring Mvc,Spring Boot,我对SpringBoot(和Servlet3.0)是新手。我正在尝试用JSP作为视图创建SpringMVC项目。当我从我的控制器返回一个视图时,它不会被解析为JstlView 以下是我所做的: @SpringBootApplication public class MyApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.

我对SpringBoot(和Servlet3.0)是新手。我正在尝试用JSP作为视图创建SpringMVC项目。当我从我的控制器返回一个视图时,它不会被解析为JstlView

以下是我所做的:

@SpringBootApplication
public class MyApp extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

}


src\main\webapp\WEB-INF\jsp
中创建了这两个.jsp文件

在谷歌搜索之后,我发现我需要在application.properties中指定这一点,所以我在props中添加了以下内容:


即使在这之后,它也不起作用。这是痕迹

2016-04-24 19:54:49.016 TRACE 7880 --- [nio-8080-exec-1] .w.s.m.m.a.ServletInvocableHandlerMethod : Invoking [MainController.welcome] method with arguments []
2016-04-24 19:54:49.016 TRACE 7880 --- [nio-8080-exec-1] .w.s.m.m.a.ServletInvocableHandlerMethod : Method [welcome] returned [welcome]
2016-04-24 19:54:49.020 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Requested media types are [text/html, application/xhtml+xml, image/webp, application/xml;q=0.9, */*;q=0.8] based on Accept header types and producible media types [*/*])
2016-04-24 19:54:49.020 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.BeanNameViewResolver  : No matching bean found for view name 'welcome'
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.b.f.s.DefaultListableBeanFactory     : Invoking afterPropertiesSet() on bean with name 'welcome'
2016-04-24 19:54:49.022 TRACE 7880 --- [nio-8080-exec-1] o.s.w.s.v.InternalResourceViewResolver   : Cached view [welcome]
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.s.v.ContentNegotiatingViewResolver : Returning [org.springframework.web.servlet.view.InternalResourceView: name 'welcome'; URL [/WEB-INF/jsp/welcome.jsp]] based on requested media type 'text/html'
2016-04-24 19:54:49.022 DEBUG 7880 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Rendering view [org.springframework.web.servlet.view.InternalResourceView: name 'welcome'; URL [/WEB-INF/jsp/welcome.jsp]] in DispatcherServlet with name 'dispatcherServlet'
2016-04-24 19:54:49.022 TRACE 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView  : Rendering view with name 'welcome' with model {} and static attributes {}
2016-04-24 19:54:49.026 DEBUG 7880 --- [nio-8080-exec-1] o.s.w.servlet.view.InternalResourceView  : Forwarding to resource [/WEB-INF/jsp/welcome.jsp] in InternalResourceView 'welcome'
2
正如您在跟踪中看到的,这试图将/jsp/welcome.jsp解析为InternalResourceView,而不是JstlView。最终它作为404失败了

我还需要遵循哪些其他步骤?有关于SpringBoot mvc和jsp的教程吗


另外,我可以使用web.xml(在配置文件中使用JstlView)用jsp创建SpringMVC应用程序。但是我找不到任何关于带jsp的Spring boot mvc的教程。

假设它嵌入了Tomcat

您需要在
pom.xml中包含以下内容

    <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>

org.apache.tomcat.embed
汤姆卡特·贾斯珀
假如
javax.servlet
jstl
嵌入式Tomcat核心包不支持JSP呈现

@Bean
public ViewResolver getViewResolver(){
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/jsp/");
    resolver.setSuffix(".jsp");
    resolver.setViewClass(JstlView.class);
    return resolver;
}
也需要,您的页面应该位于/webapp/WEB-INF/jsp/

+


org.springframework.boot
弹簧启动机tomcat
org.apache.tomcat.embed
汤姆卡特·贾斯珀
javax.servlet
jstl

您不需要ViewResolver。xml需要Yura告诉的提到的依赖项,并将jsp文件放在src\main\webapp\WEB-INF\jsp中

  • 创建webapp/WEB-INF/views{将最后一个文件夹命名为U Like} 在src/main下
  • 添加jstl jar

  • 在application.properties中添加以下两行

      spring.mvc.view.prefix=/WEB-INF/view/
      spring.mvc.view.suffix=.jsp
    
    spring.mvc.view.prefix:/WEB-INF/views/ spring.mvc.view.suffix:.jsp

    作为Spring Boot应用程序运行..你很好

    有关更多信息,您可以在github上查阅我的本项目:


  • 如果我们想在spring boot中使用jsp作为视图(默认情况下有tomcat服务器),我们需要在pom.xml中添加以下内容:

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

    虽然我不熟悉SpringBoot(我更喜欢SpringDevelopment的“遗留”方式),但我还是想了解一下。也许会有帮助。我们确实需要一个
    InternalResourceViewResolver
    bean来解析视图。在Spring Boot应用程序中,您需要一个与之相当的版本。Spring Boot有一个可能会有所帮助的版本。请尝试使用官方应用程序生成器来配置您的应用程序(默认情况下,它使用JSP模板引擎)。Spring Boot 1.4.3-RELEASE不适用于我,直到我添加了viewResolver之后才开始工作
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    
    <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
    </dependency>
    
      spring.mvc.view.prefix=/WEB-INF/view/
      spring.mvc.view.suffix=.jsp