当前位置: 首页 > news >正文

在 Spring Boot 中使用 JSP

jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。

项目结构:

pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.mg</groupId><artifactId>his5</artifactId><version>0.0.1-SNAPSHOT</version><name>his5</name><description>his5</description><packaging>war</packaging><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><dependency><groupId>jakarta.servlet.jsp</groupId><artifactId>jakarta.servlet.jsp-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.0.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

 配置文件中值得注意的地方如下,老版本springboot得用另外的包:

      <dependency><groupId>jakarta.servlet.jsp</groupId><artifactId>jakarta.servlet.jsp-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>

在 Spring Boot 支持的嵌入式容器中只有 Tomcat 支持使用 JSP,Undertow 和 Jetty 均不支持!

application.yml:  

spring:application:name : "his5"mvc:view:prefix: "/WEB-INF/views/"suffix: ".jsp"

 prefix: "/WEB-INF/views/"  是相对于webapp 的根目录起步的!

配置webapp 的根目录的地方如下:

controler:

package com.mg.his5.mvc;import com.mg.his5.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;//restful @RestController class
@Controller
@RequestMapping("/his")
public class MvcController {@GetMapping("/hello")@ResponseBodypublic String hello() {return "Hello, MVC!";}@GetMapping("/")public ModelAndView index () {return new ModelAndView("index/index");}//return user information function@GetMapping("/user")@ResponseBodypublic User getUser(){User u= new User();u.setUsername("testUser");u.setPassword("testPassword");return u;}}

不过 我觉得更好的办法是吧web 作为一个独立的模块,那样项目结构是不是更清晰呢

如下图启动项目:

test:

相关文章:

  • 深度学习姿态估计实战:基于ONNX Runtime的YOLOv8 Pose部署全解析
  • [蓝桥杯]三体攻击
  • 上门预约行业技术方案全解析:小程序、App还是H5?如何选择?
  • P10909 [蓝桥杯 2024 国 B] 立定跳远
  • 数据驱动的智驾十年 特斯拉、Momenta合流闯进Robotaxi卫冕之战
  • OrCAD X Capture CIS设计小诀窍系列第二季--03.如何在Capture中输出带有目录和元器件信息的PDF
  • vue2中使用jspdf插件实现页面自定义块pdf下载
  • 32 C 语言字符处理函数详解:isalnum、isalpha、iscntrl、isprint、isgraph、ispunct、isspace
  • ReLU 激活函数:重大缺陷一去不复返!
  • 卫朋:AI 硬件产品怎么做?——小智AI原理解析
  • 视觉前沿算法复现环境配置1——2025CVPR风格迁移网络SaMam
  • QEMU/KVM “unsupported machine type“ 错误深度解析与修复指南
  • 基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析
  • Matlab | matlab常用命令总结
  • 关于 smali:4. Smali 实战:修改行为 / 注入逻辑
  • STM32中自动生成Flash地址的方法
  • 上传、下载功能 巧实现
  • 记录一次 apt-key curl导入失败的处理方式
  • 通过SAE实现企业应用的云上托管
  • Python中while 1和while True有何区别?深入解析无限循环的写法选择
  • 建设电瓶车官方网站/网络营销专业是学什么的
  • 昆明网站做的好的公司哪家好/网络舆情监测系统软件
  • 有什么做3维的案例网站/关键词优化推广公司排名
  • 本地的丹阳网站建设/今日热点新闻15条
  • 企业网站管理系统下载/百度一下百度搜索入口
  • 网站的申请/百度关键词seo优化