Posted on 2005-12-09 10:43
Terry的Blog 阅读(1230)
评论(0) 编辑 收藏 所属分类:
java语言 、
web开发 、
转载
STRUTS的 ActionForm到现在为止,出现了最少三种方式: 普通的,动态的和懒的.
所以你在你自已的开发中,可以有很多选择,如果你安全第一,可以用普通的.如果你更喜欢XML,则用动态的.
如果你很懒,那就用Lazy ActionForm. available in Version 1.2.6 onwards
STRUTS提供的这三种ActionForm方式,要实际应用中你只要选择一种就可以了.
下面说说Lazy ActionForm:
如果你喜欢STRUTS的强大的功能的特性(就比如这个ActionForm有多种选择),又喜欢快捷, Lazy ActionForm对你来说是一个好消息. 这个有点类似于WW2中值得称道的一个特性,可以减少编写ActionForm的麻烦.(STRUTS正在把WW2中好的东西都吸收进来了,难怪这两个东西以后会合并为STRUTS IT).
示例代码如下:
struts-config.xml配置
|
<struts-config>
<form-beans> <form-bean name="lazyForm" type="org.apache.struts.validator.LazyValidatorForm"/> </form-beans>
<action-mappings> <action path="/myActionPath" type="myPackage.MyAction" name="lazyForm" validate="true"/> </action-mappings>
</struts-config>
|
JSP网页
|
<html:form action="/myActionPath">
<h2>Simple Property Example</h2> Customer Number: <html:text property="custNo"/> Customer Name: <html:text property="custName"/>
<h2>Mapped Property Example</h2> Street: <html:text property="address(street)"/> Town: <html:text property="address(town)"/> State: <html:text property="address(state)"/> Country: <html:text property="address(country)"/>
<h2>Indexed Property Example</h2> <logic:iterate id="products" property="products"> Product Code:<html:text name="products" property="code" indexed="true"/> Product Description:<html:text name="products" property="description" indexed="true"/> Product Price:<html:text name="products" property="price" indexed="true"/> </logic:iterate>
</html:form>
|
action调用
java代码:
|
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServeletRequest request, HttpServletResponse response)throwsException{ // Cast form to DynaBean DynaBean dynaForm = (DynaBean)form;
// Use the DynaBean String custNo = (String)dynaForm.get("custNo"); // simple Map address = (Map)dynaForm.get("address"); // mapped List products = (List)dynaForm.get("products"); // indexed //... etc }
|
在ACTION中,你可以使用 BeanUtils 1.7.0的特性,把dynaForm一次性拷贝到HIBERNATE的POJO中去!
转载地址:http://forum.javaeye.com/viewtopic.php?t=17441