Web数据库编程——Java 作者 舒红平 第6-9章 第7章.pptVIP

  • 1
  • 0
  • 约1.89万字
  • 约 126页
  • 2015-12-13 发布于广东
  • 举报

Web数据库编程——Java 作者 舒红平 第6-9章 第7章.ppt

7.5.3 使用ForwardAction及DispatchAction提高开发效率   1.使用 ForwardAction提高开发效率   在应用程序中,可能会经常出现只需将Action对象转发到某个JSP的情况。前面曾提到,总是由Action调用JSP来实现。如果我们不必在Action中执行任何业务逻辑,却又想遵循从Action访问页面的话,就可以使用ForwardAction,它可以使你免去创建许多空的Action类。运用ForwardAction的好处是不必创建自己的Action类,需要做的仅仅是在Struts配置文件中配置一个Action mapping。   举个例子,假定有一个JSP文件index.jsp,而且不能直接调用该页面,必须让程序通过一个Action类调用,那么,可以建立以下的Action mapping来实现这一点: action path=/logoff type=org.apache.struts.webapp.example.LogoffAction forward name=success path=/WEB-INF/jsp/index.jsp/ /action   正如你看到的,当/home被调用时, 就会调用ForwardAction并把请求转发到 index.jsp 页面。   再讨论一下不通过一个Action类直接转发到某个页面的情况。必须注意,我们仍然使用元素中的forward属性来实现转发的目标。这时元素定义如下: action path=/home forward=/index.jsp /action   以上两种方法都可以节省你的时间,并有助于减少一个应用所需的文件数。   2.使用DispatchAction提高开发效率   DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。这样可以减少Action类的数量,并且把相关的业务方法集合在一起,使得维护起来更容易。   要使用DispatchAction的功能,需要自己创建一个类,通过继承抽象的DispatchAction得到。对每个要提供的业务方法,则必须有特定的方法signature。例如,我们想要提供一个方法来实现对购物车添加商品清单,创建了一个类ShoppingCartDispatchAction,该类提供以下的方法: public ActionForward addItem( ActionMapping mapping,    ActionForm form,   HttpServletRequest request, HttpServletResponse response) Throws Exception   那么,这个类很可能还需要一个deleteItem()方法从客户的购物车中删除商品清单,以及clearCart()方法清除购物车等。这时我们就可以把这些方法集合在单个Action类,而不用为每个方法都提供一个Action类。   在调用ShoppingCartDispatchAction里的某个方法时,只需在URL中提供方法名作为参数值。就是说,调用addItem()方法的URL看起来可能类似于: http://localhost/storefront/action/cart?method=addItem 其中,method参数指定ShoppingCartDispatchAction中要调用的方法。参数的名称可以任意配置,这里使用的“method”只是一个例子。参数的名称可以在Struts配置文件中自行设定。 7.6 Struts标记库 7.6.1 定制JSP标记   Struts提供了用来封装逻辑的各种定制JSP标记,因此页面设计者可以将主要精力花在页面的可视特征上,而不必考虑Java语法或其它JSP语法。在下列标识库描述符中引用了Struts标记:   ● struts-bean.tld:使访问bean以及新bean的定义更容易,为了实现国际化,应使用不同的属性文件。   ● struts-html.tld:提供显示HTML对象(如表单、按钮和复选框)的简便方法。   ● struts-logic.tld:支持逻辑构造,以便可以有条件地显示文本或作为处理循环的结果来显示文本。   ● struts-template.tl

文档评论(0)

1亿VIP精品文档

相关文档