终于学会了,SpringBoot整合JSP,建议收藏不然找不到了

SpringBoot整合JSP,一个经典而且优雅的方案!

步骤 1 pom.xml

<!-- servlet依赖. -->
<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
       
</dependency>
      <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>jstl</artifactId>
      </dependency>
<!-- tomcat的支持.-->
<dependency>
       <groupId>org.apache.tomcat.embed</groupId>
       <artifactId>tomcat-embed-jasper</artifactId>
        
</dependency>

添加以上配置,不然没法正确访问到jsp

步骤 2 application.yml

spring:

  jpa:
    database: mysql
    hibernate:
      ddl-auto: update
      show-sql: true
  #资源目录  
  resources:
    static-locations: classpath:static/
    
  #视图解析器  
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

这些配置主要是为了说明资源目录和视图的位置。

启动类

在src下新建一个com包,里面写一个启动类:

在这里插入图片描述

package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * SpringBoot启动类
 * @author Administrator
 *
 */
@SpringBootApplication(scanBasePackages = "com")
public class Application {

   public static void main(String[] args) {
       SpringApplication.run(Application.class, args);
   }

}

4. index.jsp写在哪?

项目肯定需要一个欢迎页,我们需要这样的一个目录结构:
在这里插入图片描述
index.jsp里面的内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>

	恭喜,JSP整合成功!


</body>
</html>

5. 访问控制器

页面有了,下一步就是如何访问这个页面,老规矩,创建Controller

package com.app.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class IndexController {
	
	@RequestMapping("/")
	public ModelAndView index(ModelAndView mav){
		mav = new ModelAndView("index");
		return mav;
	}

}

默认访问的就是index.jsp

验证效果

启动项目,访问 http://localhost

在这里插入图片描述

附录: Jsp中获得项目根路径的方式

1.可以使用EL表达式:${pageContext.request.contextPath}
这种方式是的取到pageContext对象,然后在得到HttpServletRequest对象,最后再拿到contextPath。

2.可以采用JSP的形式来表示:

<%=request.getContextPath()%>

3.jstl set自定义标签

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="basePath" value="${pageContext.request.contextPath}"></c:set>

上面3种方式都是可以的,我们以第三种方式为例。

更新index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="basePath" value="${pageContext.request.contextPath}"></c:set>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>

	恭喜,JSP整合成功! ${basePath}

</body>
</html>

修改application.yml

server:
  port: 80
  context-path: /app

意思就是修改项目根目录为app。

重启,访问 http://localhost/app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剽悍一小兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值