现代化 Struts 1.x 应用程序
Modernizing Struts 1.x Application
我想使我的 Struts 1.x 应用程序现代化。有相当多的文章提倡代码迁移,而不是重写整个系统。
我想征求已成功实现遗留应用程序现代化的人的建议。
我当前的系统使用 struts 1.x 和 JDBC 准备好的语句作为数据访问层。
我期待通过以下目标改进遗留应用程序:
- 网页编码时应牢记响应式网页设计。
- 将struts1.x替换为SpringMVC
我希望将现代化分为以下几个阶段:
- 第 1 阶段 - 将所有 jsp 页更改为 HTML 5 和 CSS 3
- 阶段 2 - 将所有 DAO 类 更改为 Spring JDBC 模板或 Spring JPA
以及由 Spring
管理的交易
- 阶段 3 - 最终,将 Struts 1.x 操作表单和操作替换为 Spring MVC
在开始更改之前,我想了解是否可以:
- Struts 1.x 与 HTML 5 和 CSS 3?我正在考虑用 HTML 5 和 JSTL/EL.
替换所有 struts 1.x html 标签库
- 运行 Struts 1.x 和 Spring 3/4? 运行 非 spring 托管的 pojo 是否可以使用 Spring bean?
我应该注意什么?how/what 处理此现代化过程的最佳做法是什么?代码库约为 500k HTML/JSP 代码和 300 万 Java 代码。
自从我上次使用 Struts 1.x 以来已经有一段时间了,但我发现至少将大部分 Struts 标签替换为 JSTL/EL。您应该能够使用 Struts 1.x JSP 绘制 HTML5。我记得使用很少或没有使用 Struts 标签,仅使用 JSTL/EL,但这是在 HTML5.
之前
您可以从任何 Struts ActionForm 调用 Spring 上下文,或者基本上是您的网络应用程序中的任何 class。您可能必须手动完成,而不是使用注释,如下所示:
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
综上所述,我可以看出您打算认真更新您的应用程序,因此我必须问一下,您对保留 Struts 1.x 持肯定态度吗?如果你想放弃 Struts 标签,使用 Spring 3/4 和 HTML 5,为什么不完全放弃 Struts 并将你的应用程序迁移到 Spring MVC ?它非常易于使用,功能强大,不用说,它与实现业务逻辑、持久性等的 Spring 组件完美集成。
干杯。
(不是答案,仅供参考。)
- 您没有理由不能将 S1 应用 运行 与 Spring MVC 一起使用。这是一个合理的逐个迁移的方式,而不是一个较长的项目进行完全替换。
- 较旧的 Spring 直接支持 Struts 1. 根据您的时间安排,我可能会考虑使用较旧的 Spring,直到您走得更远。
- 用纯 HTML/CSS 替换 S1 标签会很痛苦,因为 S1 标签会呈现除输入字段之外的其他内容(例如,标签、错误消息等)。这是完全可行的,尤其是如果您编写您自己的自定义标签。
- jQuery v. (AngularJS | React | similar) 切换到一个完整的客户端应用程序是一个很大的提升,特别是如果你的后端还没有设计成方法。我不会那样做,但您可以通过将业务逻辑放在自己的位置并从 Web 层使用它来开始。那么...
- ...您开始使用 jQ 或注入现有页面的其他客户端框架在客户端使用 API 调用。只有这样,我才会开始考虑使用完整的 SPA。
最重要的是你有一个相当大的应用程序。我不会考虑从主线应用程序中删除功能并将其分解为子应用程序,而不是转换整个东西,每个子应用程序都可以使用任何看起来合理的技术栈。
作为顾问,我做过很多这样的项目:工作很忙,需要广泛的知识和技能,而且很难做好。
我想使我的 Struts 1.x 应用程序现代化。有相当多的文章提倡代码迁移,而不是重写整个系统。
我想征求已成功实现遗留应用程序现代化的人的建议。
我当前的系统使用 struts 1.x 和 JDBC 准备好的语句作为数据访问层。
我期待通过以下目标改进遗留应用程序:
- 网页编码时应牢记响应式网页设计。
- 将struts1.x替换为SpringMVC
我希望将现代化分为以下几个阶段:
- 第 1 阶段 - 将所有 jsp 页更改为 HTML 5 和 CSS 3
- 阶段 2 - 将所有 DAO 类 更改为 Spring JDBC 模板或 Spring JPA 以及由 Spring 管理的交易
- 阶段 3 - 最终,将 Struts 1.x 操作表单和操作替换为 Spring MVC
在开始更改之前,我想了解是否可以:
- Struts 1.x 与 HTML 5 和 CSS 3?我正在考虑用 HTML 5 和 JSTL/EL. 替换所有 struts 1.x html 标签库
- 运行 Struts 1.x 和 Spring 3/4? 运行 非 spring 托管的 pojo 是否可以使用 Spring bean?
我应该注意什么?how/what 处理此现代化过程的最佳做法是什么?代码库约为 500k HTML/JSP 代码和 300 万 Java 代码。
自从我上次使用 Struts 1.x 以来已经有一段时间了,但我发现至少将大部分 Struts 标签替换为 JSTL/EL。您应该能够使用 Struts 1.x JSP 绘制 HTML5。我记得使用很少或没有使用 Struts 标签,仅使用 JSTL/EL,但这是在 HTML5.
之前
您可以从任何 Struts ActionForm 调用 Spring 上下文,或者基本上是您的网络应用程序中的任何 class。您可能必须手动完成,而不是使用注释,如下所示:
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
综上所述,我可以看出您打算认真更新您的应用程序,因此我必须问一下,您对保留 Struts 1.x 持肯定态度吗?如果你想放弃 Struts 标签,使用 Spring 3/4 和 HTML 5,为什么不完全放弃 Struts 并将你的应用程序迁移到 Spring MVC ?它非常易于使用,功能强大,不用说,它与实现业务逻辑、持久性等的 Spring 组件完美集成。
干杯。
(不是答案,仅供参考。)
- 您没有理由不能将 S1 应用 运行 与 Spring MVC 一起使用。这是一个合理的逐个迁移的方式,而不是一个较长的项目进行完全替换。
- 较旧的 Spring 直接支持 Struts 1. 根据您的时间安排,我可能会考虑使用较旧的 Spring,直到您走得更远。
- 用纯 HTML/CSS 替换 S1 标签会很痛苦,因为 S1 标签会呈现除输入字段之外的其他内容(例如,标签、错误消息等)。这是完全可行的,尤其是如果您编写您自己的自定义标签。
- jQuery v. (AngularJS | React | similar) 切换到一个完整的客户端应用程序是一个很大的提升,特别是如果你的后端还没有设计成方法。我不会那样做,但您可以通过将业务逻辑放在自己的位置并从 Web 层使用它来开始。那么...
- ...您开始使用 jQ 或注入现有页面的其他客户端框架在客户端使用 API 调用。只有这样,我才会开始考虑使用完整的 SPA。
最重要的是你有一个相当大的应用程序。我不会考虑从主线应用程序中删除功能并将其分解为子应用程序,而不是转换整个东西,每个子应用程序都可以使用任何看起来合理的技术栈。
作为顾问,我做过很多这样的项目:工作很忙,需要广泛的知识和技能,而且很难做好。