介绍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中去!  

相关文章
|
8月前
|
设计模式 JSON 前端开发
Struts2框架知识分享
【6月更文挑战第7天】Struts2框架知识分享
105 0
|
9月前
|
XML 前端开发 Java
外文翻译:Struts框架介绍
外文翻译:Struts框架介绍
|
前端开发 Java
|
XML Java 数据格式
struts2+spring+mybatis整合小案例
最近学习ssm框架,模仿别人做了一个小案例 当然途中也遇到了蛮多的问题.借此机会.记录一下自己的过程 struts2+spring+mybatis的整合过程 1.说明: 个人采用的是deepin操作系统(深度linux)+Intellij Idea(相对与myeclipse我还是更喜欢idea 可能因为更智能)+tomcat7. 当然在windows下没什么不同,具
4302 0
|
XML 安全 Java
Struts2【入门】(四)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
170 0
|
XML Java 数据格式
Struts2【入门】(三)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
209 0
|
XML Java 数据格式
Struts2【入门】(二)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
212 0
Struts2【入门】(二)
|
Java
Struts2【入门】(一)
这是Strtus的开山篇,主要是引入struts框架…为什么要引入struts,引入struts的好处是什么,以及对Struts2一个简单的入门….
150 0
|
Java
Struts2框架基础篇
首先,要了解Struts2框架中参数传递的大体流程: 服务器端的Web容器收到用户的请求(URL)——Struts2的核心控制器FilterDispatcher接受用户发起的请求,然后判断这个请求是交给action还是交给web组件来处理;如果请求的action或web组件不存在,就会报错404。在整个处理过程中,需要一个辅助对象: ActionMapper ,它会确定调用哪个Actio
1678 0
|
Java 容器 开发框架