介绍struts的新特性:LazyActionForm

简介: STRUTS的 ActionForm到现在为止,出现了最少三种方式: 普通的 ,动态的 和 懒惰的 . 所以你在你自已的开发中,可以有很多选择,如果你安全第一,可以用普通的.如果你更喜欢XML,则用动态的. 如果你很懒,那就用Lazy ActionForm. STRUTS提供的这三种ActionForm方式,要实际应用中你只要选择一种就可以了. 下面说说Lazy ActionForm: 如果你

STRUTS的 ActionForm到现在为止,出现了最少三种方式: 普通的 ,动态的懒惰的 .

所以你在你自已的开发中,可以有很多选择,如果你安全第一,可以用普通的.如果你更喜欢XML,则用动态的.

如果你很懒,那就用Lazy ActionForm.

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调用

public  ActionForward execute(ActionMapping mapping, 
ActionForm form, 
HttpServeletRequest request, 
HttpServletResponse response) 
throws  Exception { 

//  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 etc 

在ACTION中,你可以使用 BeanUtils 1.7.0的特性,把dynaForm一次性拷贝到HIBERNATE的POJO中去!  

相关文章
|
2天前
|
Android开发 开发者 Windows
这是我设计的一种不关机,然后改造操作系统的软件设计思路2.0版本
本文介绍了在不重启系统的情况下实现操作系统改造的两种方案。第一种方案通过SLFM Recovery模式,在独立于操作系统的最高权限环境下完成系统更新与改造,并支持断电恢复与失败回滚。第二种方案采用多分区机制,通过SLFM套件在独立分区中完成系统改造,适用于可中断与不可中断服务场景,确保系统更新过程的安全与稳定。
211 132
|
9天前
|
人工智能 算法 测试技术
轻量高效,8B 性能强劲书生科学多模态模型Intern-S1-mini开源
继 7 月 26 日开源『书生』科学多模态大模型 Intern-S1 之后,上海人工智能实验室(上海AI实验室)在8月23日推出了轻量化版本 Intern-S1-mini。
345 51
|
20天前
|
人工智能 JavaScript 前端开发
实战使用 Qwen3-coder 低代码开发 HTML 个人网站
阿里巴巴开源的Qwen3-coder模型,凭借强大性能和低代码能力,助力用户快速搭建个人网站。本文详解环境配置、提示词设计与部署流程,适合编程新手快速上手,掌握AI辅助开发技能。
1318 8