struts1.2之Form续与标签入门

ActionForm
需要Java类,各有不同的实现
支持的属性:基本类型,包装类,自定义类,数组, Map, List
初始化:reset(),对数组,Map,List初始化
如何验证:validate()方法,通过验证框架.
如何取值:转换成对应的具体的ActionForm类,通过getter方法去对ActionForm取值.
Vo传值(BeanUtils):copyProperties(vo,properties),
动态属性:不支持
JSP上:input里的Name要和Form中的属性要对应,包括大小写.
嵌套属性:user.address.city
应用场合:对某些有明确验证需求的.对表单域做一定的过虑.
对于要把表单存在Session中
ActionForm重用问题:当N个Action其对应表单都是某个共同的子集,把这些Action对应同一个ActionForm
<action name="相同" ... />


DynaActionForm
不要Java类, 配置属性
基本类型不支持,支持包装类, 自定义类,数组,Map,List(做不了,不支持)
初始化:initial,只能对String,String[]初始化,对于数组和Map不用new
如何验证:通过验证框架验证,没有validate()方法
如何取值:转成DynaActionForm, 然后(Type)get("xxx"),getString("XX"),getStrings("XX"),getMap()
Vo传值(BeanUtils):getMap(),populate(vo, map);
动态属性:不支持
JSP上:与ActionForm完全一样.
嵌套属性:同上
应用场合:同上

Map-backed Form
需要类, 形式是固定的
包装类,自定义类(主要是String)
页面写成value(xx)的形式
初始化:基本上不支持.
如何验证:没法验证.
如何取值:转成MapForm,getValue("xx"),getMap().
Vo传值(BeanUtils):getMap(),populate(vo, map);
动态属性:支持
JSP上:所有的属性名对应value(xx)
嵌套属性:不能用这种方式,它会把usr.address.city当成字符串放到Map里.
应用场合:对应数据库表的CRUD操作.

LazyValidatorForm
不需要Java类,基本类型,String,Date,自定义类不完全支持,Map,List,数组和自定义类都要去配置.
也就是显示的申明让它来支持.
初始化:基本上不支持.除非显示申明的那些属性.
如何验证:只能通过框架, 一定要框架.
如何取值:转成DynaBean, 用get("xxx"),xxx和页面对应,get("xxx", int)数组List取第几个
get("xxx", string)到Map中的指定Key的值.
Vo传值(BeanUtils):copyProperties(vo,properties),
动态属性:支持
JSP上:没有附加要求.
嵌套属性:能嵌套, 还是DynaBean.
应用场合:优先选择, 可以回退成DynaActionForm用.
9:30 2009-8-28
------------------------------------------------------------------------------
Struts 标签
共用属性:id --- var
property :
1,只有property,没有name,和属性对应.
2,name,property一起出现
bundle : 对应资源文件.
key : 对应资源文件中的Key.
scope : 范围
------------------
Struts Bean Tags
BeanServlet
cookie,pageContext,param,paramValues,initParam,header.
<bean:cookie id="cookie" name="" value="" />
<bean:parameter id="" name="" value="" />
<bean:parameter id="" multiple="yes|no" name="" value="" />
<bean:page id="" property="" />

BeanResources
<message-resource parameter="" key="special" />
<bean:message bundle="special" key="hello" />
<bean:message bundle="special" name="" />


BeanBean
<bean:define id="" value="" />

1,定义字符串:<bean:define = "" value="" />
2,复制一个Bean :
<bean:define id="" name="" type="xx.xx.xx" scope="" toscope="" property="" />

<bean:size />
<bean:size id="" name="" property="" />

<bean:write />
<bean:write format="#.###" name="" />
<bean:write format="MM-dd-yyyy hh:mm:ss" name="now" property="time" />
------------------------------------------
Struts HTML Tags
<html:link />
<html:link forward="index" >
<html:link page="/htmlbasic.do" >
<html:link page="" paramId="" paramName="" paramProperty="" >
<html:link page="" name="map" >

<html:rewrite />
<html:rewrite page="/htmlbasic.do" name="map" />

<html:cancel>
提交不验证.有一个isCanceled(request)方法.
-------------------
<html:options collection="" property="" labelProperty="" />
<html:optionCollections name="' property="" label='' value='' />

----------------------------------------------------------------------
Struts-logic标签
<logic:equal value="admin" cookie="userable">
当前条件成立
</logic:equal>

<logic:present>
<logic:notPresent>
<logic:empty>
<logic:notEmpty>
<logic:match>
<logic:notMatch>

<logic:iterate id="" name="" indexId="ind">
<bean:write name="" property="" />
</logic:iterate>

<logic:iterate id="" indexId name offset length >

</logic:iterate>

<logic:redirect>
<logic:forward>
----------------
常用的Struts标签:
<bean:write>
<bean:define>
<bean:size>
<html:options>
<html:action>
<html:link>
<logic:match>

随意选:
<bean:parameter>
<bean:header>
<bean:cookie>
<logic:empty,present>

问的比较多的:
<logic:iterate>
<html:cancel> isCancled()方法
<html:checkBox,radio,multibox> 赋初值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值