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页面了
文章评论