如何使用react重写返回jsp页面的struts应用程序?

Lok*_*wal 3 javascript java struts2 templating reactjs

我有一个使用 Struts2 用 Ja​​va 编写的 Web 服务,struts 控制器返回 jsp 页面,现在我想使用 React 组件重写前端,最好的开始方式是什么?

lub*_*nac 6

TLDR,您可以轻松地向利益相关者宣布,这将需要几个月/年或更长时间,具体取决于您的应用程序/团队的规模。

从 Web 应用程序架构的角度来看,这是一个巨大的转变。Struts2 + JSP 在后端做 HTML 模板。所以数据被注入到服务器上的 HTML 中,HTML 也是从服务器返回的格式。

另一方面,React 是客户端 HTML 模板库。因此,它需要通过 AJAX 调用和读取数据(以 JSON 或其他格式)与服务器通信,并使用 React 将这些数据注入客户端。

所以这不会是容易的改变。您需要将所有 JSP 数据注入点解耦到服务中,并通过控制器将它们公开为 JSON 数据(考虑到身份验证机制的更改、输入验证等)。在重构之后,您可以开始将 JSP 模板移到 React(很可能是 JSX)中。但是在这条路上,您意识到您可能想要使用一些 UI 状态管理(例如 Redux)。您还发现您希望将组件构建为比大多数旧 JSP 模板更可组合的方式。没有提到您还需要移植一些嵌入到这些 JSP 中的 JS。也就是说,您最终可能会彻底清除所有 JSP 并从头开始创建 UI 应用程序。

您还将在此过程中发现诸如 JS 测试、UI 构建管道、资产捆绑和更多现代 UI Web 开发的好东西,这将增加整体重构。