多语言展示
当前在线:1493今日阅读:168今日分享:49

struts2使用restfu怎么访问项目

项目使用struts2,想添加一个提供restful 服务的模块,自然想到用restful 插件实现。关于struts2 + restful 的无配置整合,那么struts2使用restfu怎么访问项目, 项目未使用零配置插件,且restful 要做其中一个模块,以便使用项目的服务层,减少开发时间。所以上面文章的配置方式需要做些调整。
方法/步骤
1

1. 改进struts配置。

2

2. 新增namespace = '/rest' 的package ,配置定义的用于处理restful 请求的action

3

安装 REST 插件非常简单,只需按如下步骤进行即可:将 Struts 2 项目下 struts2-convention-plugin-2.1.6.jar、struts2-rest-plugin-2.1.6.jar 两个 JAR 包复制到 Web 应用的 WEB-INF\lib 路径下。由于 Struts 2 的 REST 插件还需要将提供 XML、JSON 格式的数据,因此还需要将 xstream-1.2.2.jar、json-lib-2.1.jar、ezmorph-1.0.3.jar 以及 Jakarta-Common 相关 JAR 包复制到 Web 应用的 WEB-INF/lib 路径下。通过 struts.xml、struts.properties 或 web.xml 改变 struts.convention.default.parent.package 常量的值,让支持 REST 风格的 Action 所在的包默认继承 rest-default,而不是继承默认的 convention-default 父包。对于第三个步骤而言,开发者完全可以不设置该常量,如果开发者不设置该常量,则意味着开发者必须通过 Annotation 为每个 Action 类设置父包。在实现支持 REST 的 Action 之前,我们先为系统提供一个 Model 类:Book,该 Book 类非常简单,代码如下:

4

除了提供上面的 Book 类之外,我们还为该 Book 类提供一个业务逻辑组件:BookService。为了简单起见,BookService 类不再依赖 DAO 组件访问数据库,而是直接操作内存中的 Book 数组——简单地说,本系统中状态是瞬态的,没有持久化保存,应用运行过程中这些状态一直存在,但一旦重启该应用,则系统状态丢失。下面是 BookService 类的代码:

6

还有一点需要指出,上面的 BookController 控制器实现类的类名并不以 Action 结尾,而是以 Controller 结尾,因此我们可以在 struts.xml 文件中配置如下常量:

推荐信息