JAX-RS Struts2 休息 API

JAX-RS Struts2 REST API

为什么要使用 Rest API 将 JAX-RS(Jersey) 集成到 Struts2? Struts2 本身就是一个 mvc 框架,那么为什么会有人想要集成这两者呢?如果合并,结果框架将如何(我想知道 REST API 是否只控制 MVC 的控制器部分)。

我不确定 Struts2,但过去 Struts1 没有内置 "Rest" 适配器。Jersey 提供了很酷的@annotations,可以轻松序列化您的数据模型并将把你推向 "Restful" 方向。 Jersey 不提供 MVC 框架,因为它提供了方便的方法以基于 Restful/resource 的方式工作。

有一个名为 struts2-rest-plugin 的 RESTful 插件,自版本 2.1.1 以来已包含在框架中。可以找到有关该插件的大量信息 here

本质上,该插件使用自定义操作映射器来检查请求并基于与 URI 结合使用的 HTTP 方法,它将请求分派到几个不同方法名称之一(例如 GET /movies dispatched to index () 作用方法).

仅仅因为 Struts2 是一个 action-based 框架并不意味着 RESTful 解决方案不能作为开发人员的替代方案。 Spring MVC 本身提供了类似的解决方案,它也是一个 action-based 框架。

如果您将 JSON 响应视为您的观点,您会发现 Struts2 基于 MVC 设计这一事实是合乎逻辑的。您的模型只是您要 return 发送给客户端的数据结构,而您的控制器就是操作。

考虑阅读上面关于插件的 link,您将更好地了解如何将两者集成。如果您想 return JSON 但不一定要在您的 Struts2 应用程序中提供 RESTful URL,您还可以考虑 JSON 插件,找到here.