struts表单校验失败后的整数重显问题(Form中属性类型用String的优势)
2007-08-21 17:39
399 查看
假设ActionForm Bean中有一个整数类型的属性,如果将其类型定义为int,这个属性的默认值是0;在表单页面中用一个文本框来输入这个属性的值,当文本框中没有填写任何内容时,发送到WEB服务器的参数值为一空字符串"";当ActionForm Bean中的其它属性校验失败时,回到表单页面重新显示,这时,与整数字段对应的文本框中显示的内容为0,而不是最初的那样(没有任何内容)。
为此,我们想到了在Spring MVC中所采用的办法:将整数类型的属性定义为Integer类型,这样,该属性的默认值为null,借助<html:property>可将null显示为空字符串,但是,实际运行发现,ActionForm Bean中的其它属性校验失败回到表单页面重新显示时,与Integer类型的属性对应的文本框中显示的内容仍然为0。这说明struts在将请求参数组装进ActionForm Bean对象中时、它也会将内容为空字符串""的请求参数(文本框中不填写任何内容时即会出现这种情况)装配到ActionForm Bean中,并且将空字符串""转变成0值的Integer数据。对于这种情况,我们想到了将原本属于整数的属性设计成String类型的妥协解决办法,但觉得不是很理想,想知道各位有经验的朋友对这种情况是如何处理的?特向各位朋友请教。
---------------------------------------------------------------------------------------
虽然说如果用String类型可以解决上面的问题,但是我本人是主张Form的属性类型和数据库的中的类型相对应。网上也有人说如果把Form的属性类型都用String来代替,然后从页面得到值以后再做类型转换,或者sql语句操作,让sql语句去做类型的转换。但是这样如果我们要根据Form里的属性做排序的时候就麻烦了!
----------------------------------------------------------------------------------------
转载:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1429695
为此,我们想到了在Spring MVC中所采用的办法:将整数类型的属性定义为Integer类型,这样,该属性的默认值为null,借助<html:property>可将null显示为空字符串,但是,实际运行发现,ActionForm Bean中的其它属性校验失败回到表单页面重新显示时,与Integer类型的属性对应的文本框中显示的内容仍然为0。这说明struts在将请求参数组装进ActionForm Bean对象中时、它也会将内容为空字符串""的请求参数(文本框中不填写任何内容时即会出现这种情况)装配到ActionForm Bean中,并且将空字符串""转变成0值的Integer数据。对于这种情况,我们想到了将原本属于整数的属性设计成String类型的妥协解决办法,但觉得不是很理想,想知道各位有经验的朋友对这种情况是如何处理的?特向各位朋友请教。
---------------------------------------------------------------------------------------
虽然说如果用String类型可以解决上面的问题,但是我本人是主张Form的属性类型和数据库的中的类型相对应。网上也有人说如果把Form的属性类型都用String来代替,然后从页面得到值以后再做类型转换,或者sql语句操作,让sql语句去做类型的转换。但是这样如果我们要根据Form里的属性做排序的时候就麻烦了!
----------------------------------------------------------------------------------------
转载:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1429695
相关文章推荐
- struts表单校验失败后的整数重显问题
- struts表单校验失败后的整数重显问题
- struts表单校验失败后的整数重显问题
- struts表单校验失败后的整数重显问题
- struts表单校验失败后的整数重显问题
- struts表单校验失败后的整数重显问题
- Struts 中表单Form类型转换问题
- 传智播客struts学习,formbean属性的整数与日期类型
- spring mvc时jsp页面表单关联form属性多层关联问题.
- 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结
- 0330-form表单action method属性,input类型
- 处理Hibernate中Pojo对象String属性不能映射Sqlserver2005 text类型字段问题 .
- 如何为workflow单据类型定义一个form属性,在notify中通过这个属性打开表单
- strutsmvc ajaxForm提交表单ie出现json文件下载问题解决
- form表单提交问题,name属性的getter\setter
- Struts 2学习及问题记录(3)——类型转换及输入校验
- 使用jspsmartupload解决表单属性为multipart/form-data不能传其他参数的问题
- form 表单传值到Struts Action 出现的问题
- 使用struts bean:write标签时不能显示Integer,BigDecimal等类型的属性问题的解决
- Struts2 用 s:if test 判断String类型的对象属性值和单字符是否相等的问题