`
botan1314
  • 浏览: 24743 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

使用 Prebuilt Action类提升开发效率

阅读更多

Struts framework带有好几个prebuilt Action类,使用它们可以大大节省开发时间。其中最有用的是org.apache.struts.actions.ForwardAction 和 org.apache.struts.actions.DispatchAction.     

1.使用 ForwardAction    如何让用户不直接访问/Welcome.jsp.而是通过虚拟路径/Welcome.do,达到同样效果呢? 可以在struts-config.xml中配置

1 <action path="/Welcome" type="org.apache.struts.actions.ForwardAction" parameter="/Welcome.jsp"></action>

注意,该action类型是 ForwardAction,它是在Struts附带的struts.jar中定义实现的.所以不需要我们额外实现一个这样的action. 你可以配置多个

1 <action path="/Welcome1" type="org.apache.struts.actions.ForwardAction" parameter="/Welcome1.jsp"></action>

4 <action path="/Welcome2" type="org.apache.struts.actions.ForwardAction" parameter="/Welcome2.jsp"></action>

7 <action path="/Welcome3" type="org.apache.struts.actions.ForwardAction" parameter="/Welcome3.jsp"></action>  

 再讨论一下不通过一个Action类直接转发到某个页面的情况,必须注意我们仍然使用元素中的forward属性来实现转发的目标。这时元素定义如下:

1 <action path="/home" forward="/index.jsp"> 4 </action>

以上两种方法都可以节省你的时间,并有助于减少一个应用所需的文件数。    

2.使用 DispatchAction     

 

DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。

与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。这样可以减少Action类的数量,并且把相关的业务方法集合在一起使得维护起来更容易。    

要使用DispatchAction的功能,需要自己创建一个类,通过继承抽象的DispatchAction得到。对每个要提供的业务方法必须有特定的方法signature。

例如,我们想要提供一个方法来实现对购物车添加商品清单,创建了一个类ShoppingCartDispatchAction提供以下的方法:

1 public ActionForward addItem(

2 ActionMapping mapping,

3 ActionForm form,

4 HttpServletRequest request,

5 HttpServletResponse response)

6 throws Exception;

那么,这个类很可能还需要一个deleteItem()方法从客户的购物车中删除商品清单,还有clearCart()方法清除购物车等等。

这时我们就可以把这些方法集合在单个Action类,不用为每个方法都提供一个Action类。    

在调用ShoppingCartDispatchAction里的某个方法时,只需在URL中提供方法名作为参数值。

就是说,调用addItem()方法的 URL看起来可能类似于:    

http://localhost:8081/project/...     

其中method参数指定Action类中要调用的方法。

参数的名称可以任意配置,这里使用的"method"只是一个例子。参数的名称可以在Struts配置文件中自行设定。

分享到:
评论

相关推荐

    struts 教程 很好很详细

    使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32...

    java Struts教程

    使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32...

    struts 入门教程

    使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32...

    struts的教程.doc

    使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 ...

    Java Struts教程

    INF后以保护JSP源代码............................................................................21 使用 Prebuilt Action类提升开发效率...................................................................

    prebuilt-x64-pygame-1.9.2-20150922

    - prebuilt-pygame1.9.2-msvcr90-win32.zip (2,058,252 bytes) (1) - prebuilt-pygame1.9.2a0-msvcr90-win32.zip (5,338,404 bytes) (2) - prebuilt-pygame1.9.2pre-msvcr100-win32.zip (1,903,169 bytes) (3) The ...

    phantomjs-prebuilt

    由于用npm下载phantomjs-prebuilt容易出错,phantomjs-prebuilt是我已经下载好的包,可以之间使用,内含phantomjs.exe

    platform prebuilt master

    platform_prebuilt-master

    ndk-prebuilt-android-mips64 缺失包

    ndk升级为18之后,会提示报错,缺少mip64平台下的构建工具。 只要把这个手动复制到prebuilt文件夹下,即可修复。

    Prebuilt-Binaries-master.zip

    python 3.5 ~3.7下的pygraphviz安装, 使用环境python3.5,python3.6, python3.7.注意要pygraphviz运行正常,需要单独安装graphviz,并且需要配置好环境变量

    tradefed-prebuilt.jar

    cts-tradefed-host支持jar包

    LabelImg prebuilt binaries

    LabelImg物体目标标记工具。Windows下预编译好的版本。https://tzutalin.github.io/labelImg/。

    prebuilt

    prebuilt

    ffmpeg-20100122-win32-prebuilt

    ffmpeg-20100122-win32-prebuilt,用于Ambulant项目。

    pthread-prebuilt-dll-2-9-1-release

    pthread 2.9.1 库文件,官方编译版本

    android编译总结-ALL_PREBUILT.pdf

    android编译总结-ALL_PREBUILT.pdf

    pyuv for windows prebuilt

    NULL 博文链接:https://chuqq.iteye.com/blog/1702637

    前端开源库-phantomjs-prebuilt-macbre

    前端开源库-phantomjs-prebuilt-macbrePhantomJS预建Macbre,带JS API的无头WebKit

    mongodb-prebuilt:使用npm https安装MongoDB预构建软件包

    mongodb-prebuilt 使用npm安装预建二进制文件。 此模块可帮助您轻松安装mongodb而无需编译任何内容。 MongoDB是一个开放源代码的文档数据库,旨在简化开发和扩展。 安装 下载并安装适用于您的OS的最新版本的...

Global site tag (gtag.js) - Google Analytics