Web开发你可能还是习惯传统的JSP页面开发,SpringBoot下MVC默认是没有办法使用JSP开发以及jstl的,不过要启用也不难,下面一步步来操作:
修改pom.xml增加必要的依赖
<!--看是否有spring-boot-starter-web,如果没有就增加--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--需要增加tomcat-embed-jasper来对JSP解析和渲染--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!--JSP里可能要使用JSTL,增加jstl--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
View Resolver配置
之前的非SpringBoot的Web项目,我们都是把jsp放在web/WEB-INF/views下面(或者类似的文件夹),那我们也准备把JSP页面放在类似的文件夹下,怎么告诉SpringBoot呢?
修改src/main/resources/application.properties (如果没有,就新建)
jsp页面放在src/main/webapp/WEB-INF/views下
# 会找到和src同目录下的main/webapp/WEB-INF/views spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp
修改AppApplication.java (SpringBoot的启动入口)
如下,IDEA生成默认的AppApplication是不继承任何类的,我们需要extends SpringBootServletInitializer,然后实现configure方法
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class AppApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(PcoicManageApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(PcoicManageApplication.class); } }
写Controller
以上配置都好了,现在我们来写一个Controller,把外部的请求打到某一个JSP上
我们在main/webapp/WEB-INF/views新建一个简单的JSP页面 index.jsp:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HelloWorld</title> </head> <body> Hello World </body> </html>
Controller:
@Controller public class IndexController { @RequestMapping("/") public String index() { return "index"; } // 或者使用ModelAndView @RequestMapping("/index2") public ModelAndView index2() { ModelAndView model = new ModelAndView(); model.setViewName("/index"); return model; } }
现在使用http://localhost:8080/ 和http://localhost:8080/index2 应该就能看到HelloWorld页面了
文章评论