论坛首页 入门技术论坛

struts1.2之Form续与标签入门

浏览 2695 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-09-20   最后修改:2009-09-21
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> 赋初值





















论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics