快速业务通道

使用Struts 2开发RESTful服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
者提交请求时额外增加一个 _method 请求参数,该参数值可以为 PUT 或 DELETE,用于模拟 HTTP 协议的 PUT 和 DELETE 操作。

为Struts 2应用安装REST插件

安装REST插件非常简单,只需按如下步骤进行即可:

(1)将Struts 2项目下 struts2-convention-plugin-2.1.6.jar、struts2-rest-plugin-2.1.6.jar 两个 JAR 包复制到Web应用的Web-INF\lib 路径下。

(2)由于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 路径下。

(3)通过 struts.xml、struts.properties 或Web.xml 改变 struts.convention.default.parent.package 常量的值,让支持REST风格的 Action 所在的包默认继承REST-default,而不是继承默认的 convention-default 父包。

对于第三个步骤而言,开发者完全可以不设置该常量,如果开发者不设置该常量,则意味着开发者必须通过 Annotation 为每个 Action 类设置父包。

实现支持REST的 Action 类

在实现支持REST的 Action 之前,我们先为系统提供一个 Model 类:Book,该 Book 类非常简单,代码如下:

public class Book { private Integer id; private String name; private double price; // 无参数的构造器 public Book(){} //id 属性的 setter 和 getter 方法 public void setId(Integer id) { this.id = id; } public Integer getId() { return this.id; } // 省略 name 和 price 的 setter 和 getter 方法 ...  }

使用Struts 2开发RESTful服务(4)

时间:2009-11-10 ibm 李刚

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

public class BookService { private static Map<Integer , Book> books  = new HashMap<Integer , Book>(); // 保留下本图书的 ID private static int nextId = 5; // 以内存中的数据模拟数据库的持久存储 static { books.put(1 , new Book(1 , "疯狂 Java 讲义" , 99)); books.put(2 , new Book(2 , "轻量级 Java EE 企业应用实战" , 89)); books.put(3 , new Book(3 , "疯狂 Ajax 讲义", 78)); books.put(4 , new Book(4 , "Struts 2 权威指南" , 79)); } // 根据 ID 获取 public Book get(int id) { return books.get(id); } // 获取系统中全部图书 public List<Book> getAll() { return new ArrayList<Book>(books.values()); } // 更新已有的图书或保存新图书 public void saveOrUpdate(Book book) { // 如果试图保存的图书的 ID 为 null,表明是保存新的图书 if (book.getId() == null) { // 为新的图书分配 ID。 book.setId(nextId++); } // 将保存 book books.put(book.getId() , book); } // 删除图书 public void remove(int id) { books.remove(id); } }

从上面粗体字代码可以看出,BookService 提供了 4 个方法,用于实现对 Book 对象的 CRUD 操作。

下面开始定义支持REST的 Action 类了,这个 Action 类与前面介绍Struts 2的普通 Action 存在一些差异——因为该 Action 不再用 execute() 方法来处理用户请求

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号