Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 Spring启动应用程序,其中包含来自其他Maven模块的部分JSP文件_Java_Spring_Jsp_Spring Mvc_Spring Boot - Fatal编程技术网

Java Spring启动应用程序,其中包含来自其他Maven模块的部分JSP文件

Java Spring启动应用程序,其中包含来自其他Maven模块的部分JSP文件,java,spring,jsp,spring-mvc,spring-boot,Java,Spring,Jsp,Spring Mvc,Spring Boot,假设我们有一个使用JSP模板的基于Spring引导的web应用程序。它甚至可以像下面的示例一样简单(来自官方) 项目结构: |-src/main/java/ | |-sample.tomcat.jsp | |-SampleTomcatJspApplication.java | |-WelcomeController.java |-src/main/resources/ | |-application.properties |-src/test/java/

假设我们有一个使用JSP模板的基于Spring引导的web应用程序。它甚至可以像下面的示例一样简单(来自官方)

项目结构:

|-src/main/java/
|    |-sample.tomcat.jsp
|        |-SampleTomcatJspApplication.java
|        |-WelcomeController.java
|-src/main/resources/
|    |-application.properties
|-src/test/java/
|    |-...
|-src/main/webapp/
|    |-WEB-INF
|        |-jsp
|            |-welcome.jsp
|-pom.xml
属性文件包含视图前缀
/WEB-INF/jsp/
和后缀
.jsp
,当请求
/
时,我们可以看到
欢迎.jsp的正确呈现内容

更改

现在,让我们进行以下更改

  • WelcomeController.java
    复制为
    WelcomeController2.java
    并更改位请求映射、模型属性和返回的视图名称,例如:

    @RequestMapping("/2")
    public String welcome2(Map<String, Object> model) {
        model.put("message", "Hi from Welcome2");
        return "welcome2";
    }
    
  • 然后,当请求
    /2
    时,我们可以看到
    welcome2.jsp
    的正确呈现内容

    问题

    如何将此类项目拆分为两个maven项目,以便
    WelcomeController2.java
    welcome2.jsp
    都可以移动到其他项目(maven依赖项),并且在请求
    /2
    URL时仍能成功解决


    请注意,使用Spring Boot
    web fragment.xml
    (可以放在依赖项的
    META-INF
    目录中)会被忽略。

    不幸的是,我不知道有什么简单的方法可以做到这一点,但我使用的一种方法是创建一个Maven工件,就像主项目的正常情况一样,在您的情况下可能是一个WAR工件。此项目需要依赖于您的第二个项目。然后,您的第二个项目将由两部分组成:

  • 包含已编译类文件的标准Maven JAR工件
  • 由JSP文件组成的ZIP,这些文件也需要包含在WAR归档中。这将在
    阶段从第二个项目生成,但需要使用
    zip
    分类器作为主项目的独立依赖项包含 构建第一个项目时,您需要将其作为WAR归档打包过程的一部分。如果您想让它在IDE中工作,您可能需要在相当早期的阶段将其解包,例如
    流程资源
    生成源

    |-src/main/java/
    |    |-sample.tomcat.jsp
    |        |-SampleTomcatJspApplication.java
    |        |-WelcomeController.java
    |        |-WelcomeController2.java
    ...
    |-src/main/webapp/
    |    |-WEB-INF
    |        |-jsp
    |            |-welcome.jsp
    |            |-welcome2.jsp