SpringBoot下MVC整合(包含JSP页面以及JSTL)

2021-07-07 1178点热度 0人点赞 0条评论

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页面了

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论