- 浏览: 50638 次
- 性别:
- 来自: **
最新评论
-
youanyyou:
不错 有IT人员的风范
中国网站前途预测 -
wanggod:
我用一个,呵呵,
腾讯微博邀请,要的自取。 -
zyengogo:
我没拿到
( ⊙ o ⊙ )啊!
腾讯微博邀请,要的自取。 -
hilly:
mercyblitz 写道可以换一个端口试试 估计是他软件缺陷 ...
Ashampoo不厚道,和tomcat冲突?! -
mercyblitz:
可以换一个端口试试
Ashampoo不厚道,和tomcat冲突?!
5. 使用 Prebuilt Action类提升开发效率
Struts framework带有好几个prebuilt Action类,使用它们可以大大节省开发时间。其中最有用的是org.apache.struts.actions.ForwardAction 和 org.apache.struts.actions.DispatchAction.
使用 ForwardAction
在应用程序中,可能会经常出现只要将Action对象转发到某个JSP的情况。在上一点中曾提到总是由Action调用JSP是个好习惯。如果我们不必在Action中执行任何业务逻辑,却又想遵循从Action访问页面的话,就可以使用ForwardAction,它可以使你免去创建许多空的Action类。运用ForwardAction的好处是不必创建自己的Action类,你需要做的仅仅是在Struts配置文件中配置一个Action mapping。
举个例子,假定你有一个JSP文件index.jsp ,而且不能直接调用该页面,必须让程序通过一个Action类调用,那么,你可以建立以下的Action mapping来实现这一点:
正如你看到的,当 /home 被调用时, 就会调用ForwardAction 并把请求转发到 index.jsp 页面.
再讨论一下不通过一个Action类直接转发到某个页面的情况,必须注意我们仍然使用<action>元素中的forward属性来实现转发的目标。这时<action>元素定义如下:<br><br><table width="600" align="center"><tbody><tr><td><img height="95" src="http://www.yesky.com/SoftChannel/72342371961929728/20021203/jt-2002-1203-image011.gif" width="505"></td></tr></tbody></table>
<br> 以上两种方法都可以节省你的时间,并有助于减少一个应用所需的文件数。<br><br> <b>使用 DispatchAction</b><br><br> DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。这样可以减少Action类的数量,并且把相关的业务方法集合在一起使得维护起来更容易。<br><br> 要使用DispatchAction的功能,需要自己创建一个类,通过继承抽象的DispatchAction得到。对每个要提供的业务方法必须有特定的方法signature。例如,我们想要提供一个方法来实现对购物车添加商品清单,创建了一个类ShoppingCartDispatchAction提供以下的方法:<br><br><table width="600" align="center"><tbody><tr><td><img height="116" src="http://www.yesky.com/SoftChannel/72342371961929728/20021203/jt-2002-1203-image012.gif" width="517"></td></tr></tbody></table>
<br> 那么,这个类很可能还需要一个deleteItem()方法从客户的购物车中删除商品清单,还有clearCart()方法清除购物车等等。这时我们就可以把这些方法集合在单个Action类,不用为每个方法都提供一个Action类。<br><br> 在调用ShoppingCartDispatchAction里的某个方法时,只需在URL中提供方法名作为参数值。就是说,调用addItem()方法的 URL看起来可能类似于:<br><br> http://myhost/storefront/action/cart?method=addItem<br><br> 其中method参数指定ShoppingCartDispatchAction中要调用的方法。参数的名称可以任意配置,这里使用的"method"只是一个例子。参数的名称可以在Struts配置文件中自行设定。<br><br> <b><font color="#ac000">6.使用动态ActionForm</font></b><br><br> 在Struts framework中,ActionForm对象用来包装HTML表格数据(包括请求),并返回返回动态显示给用户的数据。它们必须是完全的JavaBean,并继承.Struts 里面的ActionForm类,同时,用户可以有选择地覆盖两个缺省方法。<br><br> 该特性能节省很多时间,因为它可以协助进行自动的表现层的验证。ActionForm的唯一缺点是必须为不同的HTML表格生成多个ActionForm 类以保存数据。例如,如果有一个页面含有用户的注册信息,另一个页面则含有用户的介绍人的信息,那么就需要有两个不同的ActionForm类。这在大的应用系统中就会导致过多的ActionForm类。Struts 1.1对此做出了很好的改进,引入了动态ActionForm类概念<br><br> 通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置文件完成ActionForm的全部配置;再也没有必要在应用程序中创建具体的ActionForm类。具体配置方法是:在Struts的配置文件通过增加一个<form-bean>元素,将type属性设定成DynaActionForm或它的某个子类的全名。下面的例子创建了一个动态的ActionForm名为logonForm,它包含两个实例变量:username 和 password.<br><br><table width="600" align="center"><tbody><tr><td><img height="136" src="http://www.yesky.com/SoftChannel/72342371961929728/20021203/jt-2002-1203-image013.gif" width="506"></td></tr></tbody></table>
<br> 动态的ActionForm可以用于Action类和JSP,使用方法跟普通的ActionForm相同,只有一个小差别。如果使用普通的ActionForm对象则需要提供get 和 set方法取得和设置数据。以上面的例子而言,我们需要提供getUsername() 和 setUsername()方法取得和设置username变量,同样地有一对方法用于取得和设置password变量.<br><br> 这里我们使用的是DynaActionForm,它将变量保存在一个Map类对象中,所以必须使用DynaActionForm 类中的get(name) 和 set(name)方法,其中参数name是要访问的实例变量名。例如要访问DynaActionForm中username的值,可以采用类似的代码:<br><br> String username = (String)form.get("username");<br><br> 由于值存放在一个Map对象,所以要记得对get()方法返回的Object对象做强制性类型转换。<br>DynaActionForm有好几个很有用的子类。其中最重要的是DynaValidatorForm ,这个动态的ActionForm和Validator 一起利用公共的Validator包来提供自动验证。这个特性使你得以在程序代码之外指定验证规则。将两个特性结合使用对开发人员来说将非常有吸引力。<br><br> <b><font color="#ac000">7. 使用可视化工具</font></b><br><br> 自从Struts 1.0 分布以来,就出现了不少可视化工具用于协助创建,修改和维护Struts的配置文件。配置文件本身是基于XML格式,在大中型的开发应用中会增大变得很笨拙。为了更方便的管理这些文件,一旦文件大到你无法一目了然的时候,建议试着采用其中的一种GUI 工具协助开发。商业性的和开放源代码的工具都有不少,表1列出了可用的工具和其相关链接,从那里可以获取更多信息。<br><br> 表 1. Struts GUI 工具<br><table cellspacing="0" width="100%" border="1"><tbody>
<tr>
<td>应用程序</td>
<td>性质 </td>
<td>网址</td>
</tr>
<tr>
<td>Adalon</td>
<td>商业软件</td>
<td>http://www.synthis.com/products/adalon</td>
</tr>
<tr>
<td>Easy Struts </td>
<td>开放源码</td>
<td>http://easystruts.sourceforge.net/</td>
</tr>
<tr>
<td>Struts Console</td>
<td>免费</td>
<td>http://www.jamesholmes.com/struts/console</td>
</tr>
<tr>
<td>JForms </td>
<td>商业软件</td>
<td>http://www.solanasoft.com/</td>
</tr>
<tr>
<td>Camino </td>
<td>商业软件</td>
<td>http://www.scioworks.com/scioworks_camino.html</td>
</tr>
<tr>
<td>Struts Builder </td>
<td>开放源码</td>
<td>http://sourceforge.net/projects/rivernorth/</td>
</tr>
<tr>
<td>StrutsGUI </td>
<td>免费</td>
<td>http://www.alien-factory.co.uk/struts/struts-index.html</td>
</tr>
</tbody></table>
<br></form-bean></action></action>
发表评论
-
集成新版本Tomcat到JBuilder
2006-06-29 20:14 565Overview <!-- Enter Approp ... -
什么是ERP软件
2006-07-04 07:16 714什么是ERP软件? ERP是英文Enterprise R ... -
Struts常见错误汇总(转)
2006-07-06 15:49 599以下所说的struts-config.xml和Applicat ... -
JSTL语法及参数
2006-07-13 23:46 1456JSTL语法及参数 JS ... -
struts标签之浅入深出(转)
2006-07-18 12:50 677Action和jsp的开发其实就是对Struts标签的运用.掌 ... -
标签示例
2006-07-18 13:18 651//web.xml <?xml ver ... -
[Struts]应用Map作为ActionForm的属性,动态增加ActionForm的“属性” (转)
2006-07-20 17:17 886[Struts]应用Map作为ActionForm的 ... -
struts的七点经验-1(转)
2006-07-20 17:20 6321. 只在必要的时候 ... -
struts七点经验-2(转)
2006-07-20 17:25 7133. 使用应用模块(Application Modu ... -
LookupDispatchAction使用示例
2006-07-20 18:01 655LookupDispatchAction ... -
LookupDispatchAction使用示例(中文)(转)
2006-07-20 18:04 745org.apache.struts.actions.Looku ... -
官方Class LookupDispatchAction说明文档(转)
2006-07-20 18:18 731<! ... -
什么是数据仓库(转)
2006-07-24 14:01 684什么是数据仓库 (转载自北大高科网站,ht ... -
jsp生成随机验证码图片(转)
2006-08-06 21:45 889转自:http://www.matrix.org.cn/res ... -
Struts安装配置(转)
2006-08-16 17:11 865Struts安装配置 1、Struts的安 ... -
Struts入门(转)
2006-08-16 17:39 626Struts安装: 首先请到http://jakarta.ap ... -
J2EE建议的学习路线
2006-08-16 17:44 777J2EE建议的学习路线 来 ... -
java 中的内存泄漏
2006-09-07 19:49 589出自:ibm:developerworks中 ... -
为什么要使用EJB
2006-09-07 20:04 753为什么要使用EJB? 来源:http://www.jdon ... -
Java 应用程序 安装程序 制作工具 InstallAnywhere (转)
2007-01-08 10:56 1035本文转自:http://www.tongyi.net/deve ...
相关推荐
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-...
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts1.38包,struts-core-1.3.8.jarstruts1.38包,struts-core-1.3.8.jar
2017年7月7日,Apache Struts发布最新的安全公告,Apache Struts2-strus1-plugin插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9791(S2-048),主要受影响的Struts版本为:2.3.x。 攻击者可以构造恶意的字段值...
赠送jar包:struts-core-1.3.8.jar; 赠送原API文档:struts-core-1.3.8-javadoc.jar; 赠送源代码:struts-core-1.3.8-sources.jar; 赠送Maven依赖信息文件:struts-core-1.3.8.pom; 包含翻译后的API文档:struts...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
包含Struts2框架的核心类库,以及Struts2的第三方插件类库 struts2-core-2.0.14 xwork-2.0.7 ognl-2.6.11 commons-logging-1.0.4 freemarker-2.3.8 等等。
commons-lang3-3.4.jar, commons-logging-1.1.3.jar, dwr-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.23.jar, google-collections-1.0.jar, google-gxp-0.2.4-beta.jar, hamcrest-core-1.3.jar, jackson-...
struts-2.3.34-all.rar,包括app,docs,lib,src
struts-2.3.7-all jar包
【Struts2】〖所有依赖jar包〗struts-2.3.37-lib 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
这个"struts-2.5.2-all.zip"压缩包包含了Struts 2.5.2版本的所有必需组件,方便开发者在项目中快速集成和使用。 首先,我们来看看Struts 2的核心概念: 1. **Action类**:它是处理用户请求的核心,负责业务逻辑的...
3. **国际化支持**:`struts-tiles.jar`提供了Tiles框架,可以方便地构建可重用的页面布局和组件,支持多语言国际化。 4. **其他依赖库**:可能包括`commons-logging.jar`、`commons-lang.jar`、`commons-...
`struts-2.3.16-all`这个压缩包包含了Struts 2框架的版本2.3.16的所有组件和相关资源,这对于我们深入了解和使用Struts 2框架具有重要意义。 首先,Struts 2的核心组件包括Action、Result、Interceptor和ValueStack...
struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
3. **jQuery**: - AJAX:jQuery简化了XMLHttpRequest的使用,使得异步数据获取(包括JSON)更加便捷。 - JSON解析:jQuery提供了解析JSON数据的内置函数,可以方便地将JSON数据转化为JavaScript对象。 - 动态DOM...
struts.xml文件中新增以下内容: <!-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
struts-html-el.tld
在使用struts-2.3.31-all.zip压缩包时,通常会包含以下组件: - `struts2-core.jar`:框架核心库,包含了Action、Interceptor、Result等主要组件。 - `struts2-convention-plugin.jar`:约定优于配置插件,简化...