在tss.com上看到一篇好文,有关struts使用中各种不同的action与actionform组合的利弊.我先消化一下,整理好,供大家参考.原文标题:struts action mappings: divide et impera,作者:michael juravlev.在tss上的url:http://www.theserverside.com/articles/article.tss?l=strutsactionmapping
注:文中小写的action不一定代表具体的struts action类,有时也指作为一个整体的action mapping. 【程序编程相关:JMX Connectors】说明:阅读本文需要一定的struts基础. 【推荐阅读:J2EE 中使用EntityBean和】
[1] 完整的action 【扩展信息:父线程等候10个子线程完成的例子】<action path="/afullaction"
type="somepackage.someactionclass"> name="someform" input="somejsp.jsp" <forward name="successful" path="somejsp.jsp"/> <forward name="failed" path="someotherjsp.jsp"/></action>首先,struts的actionservlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping(映射);接下来如果form的范围是request或者在定义的范围中找不到这个form,创建一个新的form实例;取得form实例以后,调用其reset()方法,然后将表单中的参数放入form,如果validate属性不为false,调用validate()方法;如果validate()返回非空的actionerrors,将会被转到input属性指定的uri,如果返回空的actionerrors,那么执行action的execute()方法,根据返回的actionforward确定目标uri.
这样做的效果是:execute()仅当validate()成功以后才执行;input属性指定的是一个uri.
[2] 仅有form的action... 下一页