STS 4.1 支持 Dynamic Web Module 和 JSP

本文探讨了Spring Tool Suite(STS)4版本在Spring Boot开发中的优化与改进,包括其对Tomcat支持的变化、DynamicWebModule的重要性及JSPEditor的缺失。文章详细描述了如何在STS中安装必要的插件以支持传统Web应用开发。

Spring Tool Suite (STS) 自个用了挺久了,相对 Eclipse 在 Spring 生态支持上要好不少,没去捣鼓 IDEA。

STS 4 GA 出来后就和 3.9 的版本差别有点大了,为了精简提速移除了很多依赖插件;
可以说全面转向了 spring boot 开发模式,提供了最优支持。

2019-01-27 补充现场

4.1.1 出来后,下面的都不用看

吐嘈现场

嘛,确实原本的 Eclipse 挺重的,神码 build,validate 之类的都要挺久,
很多人为了提速会关闭掉不少 validation ,但开发过程中就会忽略掉不少 warning 甚至 error,
不少人是不管 warning 的,但对于有少许洁癖的我来说,不大能忍;
且不说大量的 warning 出现会不会影响整个 IDE 的运行速度,你关了检查就算,我还开着呢,
各种 deprecated 也视而不见,给自个挖坑,长久以后要升级依赖又各种不愿意……

移除的依赖插件中影响最广泛的莫过于:
  • Tomcat 的支持
    毕竟 boot 项目都是内置的
  • Dynamic Web Module
    要用外置 tomcat 跑得有它
  • JSP Editor(高亮,语法提示,校验)
    要知道还有多少小公司大公司老项目还在用它,没有迁移到 thymeleaf 之类的,更别说完全前后端分离了
我可能走了一条歪路子

记得 4.0 刚出来的时候连 JST Server Adapters 都没有,以至于在 Preferences -> Server -> Runtime Enviroments 中无法添加 Apache Tomcat 作为 Server,不过后来的版本加上了,至少 4.1 是有加的。
Tomcat Server 是能在默认情况下添加了,但还是无法将 Maven war 项目添加到 Tomcat Server 中,还是白搭。

基本可以确认的是 需要是 Dynamic Web Module 的项目才能添加进 Tomcat Server;
而 Dynamic Web Module 从属于 Eclipse Java EE Developer Tools,装上就有;
不过估计是因为这玩意里面不只有 Dynamic Web Module,还有一堆 EJB、JSF 什么的在里面,同时 Validation 里也会多不少东西,所以没有默认添加进 STS 吧。

而 JSP Editor 从属于 JSF Tools - Web Page Editor;
没看错,是 JSF,不是独立的,为啥不是独立的呢,JSF 果然牛逼,除了实习的时候用过,就再也没碰过了。
由于前端 MVVM 框架过于夺目,这些 JSF、JSP、thymeleaf 之类的估计慢慢要退休了。

安装方式

Help -> Install New Software...
Work with 选中 "2018-12 - http://download.eclipse.org/releases/2018-12"
在出来的项目中找到 "Web, XML, Java EE and OSGi Enterprise Development" 大类
在其下选中 Eclipse Java EE Developer Tools 和 JSF Tools - Web Page Editor 安装便是。 安装方式

转载于:https://my.oschina.net/keywindy/blog/2998092

<think>嗯,用户想了解如何在STS中创建动态Web项目。根据用户上次的提问记录,虽然用户提供了几个引用片段,但实际主题是独立创建项目,这些引用可能来自之前的上下文。主要需要参考Spring官方指导动态Web项目创建方式。用户可能刚接触STS开发环境。从问题表述看,用户需要的是基础操作指导,需要分解操作步骤,重点注意事项需要特别说明。准备分步骤回答:先说明项目创建入口,再强调选择Maven原型模板的重要性。考虑特别指出选择webapp模板的两个版本差异(1.31.4),这是避免错误的经验点。关于项目结构部分,需要补充三个特征目录。其中WEB-INFweb.xml是传统配置项,虽然SpringBoot可省略,但作为动态web项目基础仍需提及。配置Spring依赖部分需要考虑标注同作用范围的依赖项,避免混淆用户。最后考虑延伸三个实用提问:1)转换SpringBoot项目(因现代开发趋势)2)解决常见启动错误(实用排错)3)Maven配置技巧(进阶需求)。准备使用代码段展示依赖添加的精确写法。整个指导需要确保操作路径清晰,避免混合配置导致冲突(参考用户提供的引用[1]中的配置冲突警告)。对于用户提到的其他引用(AOP、验证等),虽然与当前问题无关,但可以作为后续扩展方向保留。</think> 以下是在 Spring Tool Suite (STS) 中创建动态 Web 项目的完整步骤,结合了 Spring Boot 最佳实践: ### 创建步骤 (基于 STS 4.x) 1. **打开项目向导** `File → New → Dynamic Web Project` (若找到入口,可改用 `File → New → Project...WebDynamic Web Project`) 2. **配置项目基础信息** ```markdown Project name: MyWebApp Target runtime: 选择 Apache Tomcat (需预先配置) Dynamic web module version: 推荐 4.0+ (支持 Servlet 4.0) Configuration: 勾选 *Generate web.xml deployment descriptor* ``` 3. **添加 Spring 支持** 在项目右键菜单选择: `Configure → Add Spring Project Nature` 此时会自动生成 `src/main/resources/application.properties` 4. **关键目录结构设置** ```markdown src/ main/ java/ -> Java 源码 resources/ -> 配置文件 (application.properties) webapp/ -> 前端资源 (JSP/HTML) WEB-INF/ web.xml ``` 5. **添加 Spring Boot Starter (Maven)** 在 pom.xml 中增加依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.1.6</version> </dependency> </dependencies> ``` 6. **创建启动类** 在 `src/main/java` 新建: ```java package com.example; 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 App extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(App.class); } public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` 7. **部署到 Tomcat** 将项目拖至 STS 的 Tomcat 服务器视图,右键选择 `Full Publish` > **重要提醒** > 若出现配置冲突(如引用[1]所述),请检查: > 1. 删除 `-Djava.security.auth.login.config` 系统参数 > 2. 在 `application.properties` 统一配置认证: > ```properties > spring.security.user.name=admin > spring.security.user.password=secret > ``` ### 验证部署 访问 `http://localhost:8080/MyWebApp` 应显示 Whitelabel Error Page(正常状态,表示容器已启动) ### 创建效果示意图 ```markdown MyWebApp ├── src/main │ ├── java │ │ └── com/example/App.java # Spring启动类 │ ├── resources │ │ └── application.properties # Spring配置 │ └── webapp │ ├── index.jsp # 示例页面 │ └── WEB-INF │ └── web.xml # 部署描述符 └── pom.xml # Maven依赖管理 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值