快速业务通道

将Struts应用迁移到Struts 2(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
ss ViewBlogAction extends Action ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{ BlogService service = new BlogService(); String id = request.getParameter("id"); request.setAttribute("blog",service.findById (Integer.parseInt(id))); return (mapping.findForward("success")); } } public class SaveBlogEntryAction extends Action ...{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{ BlogService service = new BlogService(); BlogForm blogForm = (BlogForm) form; Blog blog = new Blog(); BeanUtils.copyProperties( blog, blogForm ); service.create( blog ); return (mapping.findForward("success")); } } public class UpdateBlogEntryAction extends Action ... { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{ BlogService service = new BlogService(); BlogForm blogForm = (BlogForm) form; Blog blog = service.findById( Integer.parseInt (blogForm.getId())); BeanUtils.copyProperties( blog, blogForm ); service.update( blog ); request.setAttribute("blog",blog); return (mapping.findForward("success")); } }

将Struts应用迁移到Struts 2(二)(3)

时间:2011-03-24

这三个action都跟随着同一个模式:

产生一个新的业务逻辑对象实例 - 如前面所提到的,我们使用 最直接的方式在action中使用业务逻辑对象,这表示在每个action 中都会产生新的业务逻辑对象实例。

从请求中获得数据 - 这是两种形式之一。在view action 中,"id"是从HttpServletRequest 对象中直接获取的。而在 create 和 update action 中,则从ActionForm 中取值。 ActionForm 与 HttpServletRequest 的调用方式其实很相似,唯 一不同的ActionForm 是bean的从field中取值。

调用业务逻辑- 现在开始生成调用业务逻辑所需的参数并调用 逻辑。如果参数(在view action中)是一个简单对象类型,则转换 值时会自动转为正确的类型(如从String转到Integer)。如果参数 是复杂的对象类型,,则ActionForm 需要通过BeanUtil 来帮忙转 成相应的对象。

设定返回的数据 - 如果需要把数据返回显示给用户,那则要把 这个数据设在HttpServletRequest 的attribute 中返回。返回一 个 ActionForward - 所有 Struts action的最后都需要找到并返 回其相应的 ActionForward 对象.

最后的两个action,remove和list action, 只有很少的差别。 remove action如下所示,没有用BlogForm类. 通过从request的 attribute中获取"id"(和view action相似),就能调用业务逻辑完 成其需要的工作。在下面我们介绍配置时,你可以看到它并没有返 回任何数据,因为它的"success"返回结果其实是执行remove后再 执行了list action来返回信息的。

public class RemoveBlogEntryAction extends Action ...{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{ BlogService service = new BlogService(); String id = request.getParameter("id"); service.delete(Integer.parseInt(id)); ret

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号