前面的步聚都是一样的,修改pom.xml。
<!--这是idea对jsp页面显示的支持 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!--这是资源目录的指定,而且一但指定资源目录,系统默认的目录将不再有效,所有 的目录都必须指定--> <resources> <resource> <directory>src/main/webapp</directory> <targetPath>meta-inf/resources</targetPath> <includes> <include>*.*</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources> <!--生成jar包的依赖,只有1.4.2.RELEASE的是能用的,其它的,都有问题,不知为什么没有解决--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.2.RELEASE</version> <configuration> <mainClass>com.example.Spring027Jar03Application</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
以上只有那个1.4.2.RELEASE是与jar文件的生成有关的,是必须要改的。
再改properties文件。加这个jsp支技的前后缀,
spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp
然后再添加一个类。这个controller类,一个指向是返回一个对象,一个是返回一个相应的同名的页面。
package com.example.control; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.Map; @Controller public class MyController { @RequestMapping("/hehe") public @ResponseBody Object hehe(){ Map<String,Object> map=new HashMap<>(); map.put("userid",1001); map.put("username","lili"); return map; } @RequestMapping("show") public String show(Model model){ model.addAttribute("userid",1002); model.addAttribute("username","haha"); return "show"; } }
再建一个webapp目录,并指定为webapp目录,然后在里面新建一个show.jsp。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>${userid}</h1> <h2>${username}</h2> </body> </html>
然后,运行,成功以后,在idea的右边点击clean,再点击package就行了。
然后,把生成的jar文件拷到需要的目录,打开cmd窗口,运行这个jar文件,就行了,就能在浏览器里访问这个工程了。