做WEB项目,一定都用过JSP这个大牌。Spring MVC里面也可以很方便的将JSP与一个View关联起来,使用还是非常方便的。当你从一个传统的Spring MVC项目转入一个Spring Boot项目后,却发现JSP和view关联有些麻烦,因为官方不推荐JSP在Spring Boot中使用。在我看来,继续用这种繁杂的手续支持JSP仅仅只是为了简单兼容而已。

我们先来看看如何在SpringBoot中使用JSP ?

1. 在pom.xm中加入支持JSP的依赖

org.apache.tomcat.embed

tomcat-embed-jasper

provided

javax.servlet.jsp.jstl

jstl-api

1.2

2. 在src/main/resources/application.properties文件中配置JSP和传统Spring MVC中和view的关联

# MVC

spring.view.prefix=/WEB-INF/views/spring.view.suffix=.jsp

3. 创建src/main/webapp/WEB-INF/views目录,JSP文件就放这里

Hello

4. 编写Controller

package com.chry.study;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

@Controller

@EnableAutoConfigurationpublic classSampleController {@RequestMapping("/hello")publicModelAndView getListaUtentiView(){

ModelMap model= newModelMap();

model.addAttribute("name", "Spring Boot"); return new ModelAndView("hello", model);

}}

5. 编写Application类

packagecom.chry.study;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.builder.SpringApplicationBuilder;importorg.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplicationpublic class WebApplication extendsSpringBootServletInitializer {

@OverrideprotectedSpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(WebApplication.class);

}public static void main(String[] args) throwsException {

SpringApplication.run(WebApplication.class, args);

}

}

6. 以java application方式运行后,就可以访问http://locahost:8080/hello

==================  分割线 ==================================

以上代码pom.xml中的javax.servlet.jsp.jstl是用于支持JSP标签库的,在Web2.5的容器中没有问题,单当你的容器是Web3.0或以上版本时,就会出问题。 这是个非常坑爹的问题。

javax.servlet.jsp.jstl会自动加载依赖servlet-api-2.5.jar, 而且会在实际运行时把支持Web3.0的3.1版本的javax.servlet-api覆盖掉。即使你在pom.xml显示的在加入3.1版本的javax.servlet-api也没用。导致SpringBoot应用抛出Runtime exception运行错误。

这是一个不可调和的矛盾,要吗不用javax.servlet.jsp.jstl,要吗不用Web3.0。

但绝大多数情况下,jstl标签库不是必须的,而Web3.0是必须的。替代方式就是不用JSP,改用Themeleaf吧

springboot怎么替代jsp_如何在SpringBoot中使用JSP ?但强烈不推荐,果断改Themeleaf吧...相关推荐

  1. springboot怎么替代jsp_如何在SpringBoot中使用JSP ?

    1. 在pom.xm中加入支持JSP的依赖 org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet.jsp.jstl js ...

  2. Cookie操作以及如何在js中调用jsp变量

    存Cookie Cookie idCookie = new Cookie("userId", request.getParameter("id"));Cooki ...

  3. 如何在eclipse中创建jsp工程项目

    第一种方法:[File]----[new]----[Dynamic Web project] 第二种方法:[File]----[new]----[project]----[web]----[Dynam ...

  4. 【SpringBoot基础知识】如何在springboot中使用多线程

    1.楔子 在我们的系统中,经常会处理一些耗时任务,自然而然的会想到使用多线程,JDK给我们提供了非常方便的操作线程的API,为什么还要使用Spring来实现多线程呢? 1.使用Spring比使用JDK ...

  5. python替代goto_如何在 Python 中实现 goto 语句

    Python 默认是没有 goto 语句的,但是有一个第三方库支持在 Python 里面实现类似于 goto 的功能:https://github.com/snoack/pyt.... 比如在下面这个 ...

  6. 如何在eclipse中修改jsp默认编码

    在使用eclipse编程的时候,很多默认的编码都是iso-8859-1我们经常使用的,在eclipse中怎么修改jsp页面的默认编码呢. 第一步:打开eclipse,找到windows-->pr ...

  7. mock模拟的数据能增删改查吗_如何在Vue中使用Mockjs模拟数据的增删查改

    之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...

  8. 如何在eclipse中写jsp文件

    写jsp文件的条件: 1.eclipse 2.tomcat 以下是基于eclipse4.0版本的讲述 ---------------------------------------- 一.打开ecli ...

  9. 如何在php中使用jsp,JSP/PHP运用详解

    JSP/PHP运用详解 1,DateTime类型数字 以下是引用片段: 当前时间System.DateTime的=新System.DateTime的(); 1.1小时分钟当前日期秒,当前时间= Sys ...

最新文章

  1. [20170315]数据类型interval day to second
  2. SQL Server 2000/2005 数据库分页
  3. Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门
  4. zabbix-server无法启动
  5. 【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)
  6. 深度学习自学(三十四):换衣场景下行人重识别
  7. chrome 窗体高度_js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
  8. 基于阿里语音识别(ASR)C/C++ SDK2.0编写的unimrcp中间件
  9. 数组中的最长山脉java实现
  10. 无敌破坏王2口碑爆棚,从街游到手游你最爱哪款游戏呢?
  11. 20届最难毕业的前端程序员的一年前端工作经验总结
  12. eclipse绿色版
  13. Photoshop CC重磅功能发布:复杂抠图也能一键搞定
  14. python爬取推特图片_twitter图片视频批量下载
  15. FlashPro2000.C2000.TDS510.TI编程 器支持大部分TI芯片读写2812.28335等
  16. 向上累积频数怎么算_累计频数怎么求(怎样计算频数和频率)
  17. 四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)
  18. 你的好帮手,优质chatgpt镜像网站
  19. [经验教程]2022京东618红包活动时间是什么时候开始什么时候结束及怎么领取京东618红包?
  20. 如何把webp压缩大小?在线webp压缩的工具推荐

热门文章

  1. python中用break结束死循环
  2. 几道有意思的逻辑分析题
  3. C#正则表达式的完全匹配、部分匹配及忽略大小写的问题
  4. 软件开发和产品经理到底是怎么回事
  5. 索引与优化like查询
  6. 转:不是技术牛人,如何拿到国内IT巨头的Offer
  7. 父类中“this” 指向问题
  8. 小波变换和小波包变换
  9. linux 把命令行结果赋值给变量;linux if语句 ; command log
  10. Spark配置参数优先级