Struts ActionForm
来源:互联网 发布:淘宝优惠券样式 编辑:程序博客网 时间:2024/04/30 01:43
动态ActionForm的编写:
动态ActionForm是为了避免过多的ActionForm类而设计的,使用动态ActionForm
可以获得静态AcitonForm的所有好处;
1、在Struts-config.xml定义动态AcitonForm
如:
<form-bean name="dynaUserActionForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="name" type="java.lang.String"/>
<form-property name="age" type="java.lang.Integer"/>
</form-bean>
2、在Action中使用的时候,需要强制转换为DynaActionForm类型,同时使用get方法来获取
如:
DynaActionForm dynaform = (DynaActionForm)form;
String name = (String)dynaform.get("name");
Integer age = (Integer)dynaform.get("age");
参考:DynaActionFormTestAction类
----------------------------------------------------------------
上传文件:
1、页面的action需要配置:enctype="multipart/form-data",如:
<form action="upload.do" method="post" enctype="multipart/form-data">
标题:<input type="text" name="title"><br>
文件名:<input type="file" name="myfile"><br>
<input type="submit" value="上传"><br>
</form>
注意:method必须设置为post
2、ActionForm中使用FormFile来接收文件
3、在Action中调用FormFile即可取得上传文件的相关数据,完成上传
参见:UploadAction类
空字段的问题:
如果页面没有写<input>,用jsp脚本在后台接收到的字符串为null,及空对象,如果用EL表达式,则为空串“”
如果页面中有<input>,没有输入值,后台接收到的为空串“”
----------------------------------------------------------------
Struts对ActionForm类型的自动转换:
boolean: yes,y,1,true,on这些都可以转换为true类型,而且是忽略大小写的;其它情况会转换为false类型
Date类型的转换:
* 如果定义Date为: java.sql.Date类型,页面传递到后台的相应属性不能为空字符串,而且其格式
必须是yyyy-MM-dd。
* 如果定义Date为:java.util.Date类型,默认情况下,struts无法转换此类型,我们需要定义
自己的Converter来进行转换
----------------------------------------------------------------
Struts对ActionForm类型的自动转换过程:
1、搜索request中的parameter
2、把request中所有的参数名称和值(字符串类型)放到map中(key为参数名称,value为值)
3、调用BeanUtils.setProperty方法,将map中的值逐个设置到ActionForm的数性上;
*对于ActionForm中的每一个属性,根据属性的类型,调用相应的Converter
*调用Converter的convert方法,将相应的字符串转换成ActionForm中指定的类型
Converter的convert方法如下:
public Object convert(Class type, Object value) {}
如果我们要转换为java.util.Date类型(即从一个字符串转换为java.util.Date类型),步骤如下:
1、实现一个Converter
2、将converter进行注册(通常用servlet注册,注意servlet标签中的<load-on-startup>标签的值必须大于等于0,web server在启动的
时候才会调用servlet的init方法 )
----------------------------------------------------------------
我们可以通过BeanUtils.copyProperties(目标对象,源对象) 方法,在ActionForm对象和实体对象之间复制,避免过多的调用get/set方法
- Struts ActionForm
- 【Struts】ActionForm
- struts-ActionForm
- struts-ActionForm:reset()详解
- 使用Struts之ActionForm
- 使用Struts之ActionForm
- Struts应用之ActionForm
- struts-ActionForm:reset()详解
- (Struts)动态ActionForm(转)
- Struts 中的ActionForm
- Struts应用之ActionForm
- Struts中的动态ActionForm
- Struts ActionForm 文件上传
- struts actionform date beanutils
- struts ActionForm 类型转换器
- 06-struts-动态ActionForm
- Struts(四)ActionForm
- Struts---- 动态ActionForm
- 用Google Spreadsheets来建构Google Map
- Vim Tips
- 在MFC类中各种类的指针的获取和应用
- 超简单:用Google Spreadsheets建立留言板
- 网络socket编程指南
- Struts ActionForm
- 验证只输入时间的脚本和文本选中js脚本(兼容firefox)
- HI设计
- C++中extern “C”含义深层探索
- VC下实现"精灵"窗口
- Chrome VS Internet Explore
- 网络就是应用程序的入口----话说google chrome
- c,c++中sizeof问题
- [ZT]AIX系统中动态链接库的创建与使用