论坛首页 Java企业应用论坛

Spring MVC Form元素与类型绑定的疑问

浏览 8988 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-02-21  
环境:Spring MVC

问题:form元素是与VO(或者PO,这里先别讨厌用PO是对还是错)相对应的,如果这个form其中的一个元素是与VO的一个Integer型的字段对应,当这个form元素值不为空时,且是合法的Integer范围,那就不会报错;当这个form元素的值为空时,就会报错,说无法转换这个值。

不知道有什么好的办法解决让它当为空时(在不扩展spring mvc的情况下),值也就会null(空)?

如果不行的话,那PO一杆桶到底是不是有问题呢?
   发表时间:2005-02-22  
spring嘟嘟 写道
不让为空就好了


问题是我想它为空时,我的值也为空。

现在的办法是在VO多写一个方法

eg:
public void setXXXXX(String value);{

           if(null!=value && value.length();>0);
                            //Integer值
                             setXXXXX2(new Integer(value););;                     

}
0 请登录后投票
   发表时间:2005-02-23  
在你的派生类里重写commandcontrollor 的initBinder方法

protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
    throws Exception {
binder.registerCustomEditor(Integer.class,new CustomNumberEditor(Integer.class,true));
}
0 请登录后投票
   发表时间:2005-02-23  
把Integer改为int的声明也能绑定的(ORM也没问题),当表单不填时它就为0,不知道这样能否达到你的要求?
0 请登录后投票
   发表时间:2005-02-23  
age是int
当我输入为空或不是数字都会出错
Failed to convert property value of type [java.lang.String] to required type [int] for property 'age'; nested exception is java.lang.NumberFormatException: For input string: "rr" 

怎样才能把这段错误提示替换掉?
0 请登录后投票
   发表时间:2005-03-07  
pikachu 写道
在你的派生类里重写commandcontrollor 的initBinder方法

protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
    throws Exception {
binder.registerCustomEditor(Integer.class,new CustomNumberEditor(Integer.class,true));
}


为什么默认不是我所需要的呢?傻死了,看来它对MVC的确不是很懂(spring的作者),参考一下其它的MVC框架嘛。。。

看来只能这样了。。。。。
0 请登录后投票
论坛首页 Java企业应用版

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