input 为disabled 引起的java.lang.NullPointerException_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > input 为disabled 引起的java.lang.NullPointerException

input 为disabled 引起的java.lang.NullPointerException

 2013/10/31 16:13:13  focus2008  程序员俱乐部  我要评论(0)
  • 摘要:最近遇到一个空指针异常:严重:Servlet.service()forservlet[default]incontextwithpath[/**]threwexception[java.lang.reflect.InvocationTargetException]withrootcausejava.lang.NullPointerException表现很奇怪:页面上查看源码,某个bean的myNo属性明明有值,但是到了action中,调试的结果显示,该属性为NULL,结果是在该属性调用myNo
  • 标签:Java NullPointerException
最近遇到一个空指针异常

严重: Servlet.service() for servlet [default] in context with path [/**] threw exception [java.lang.reflect.InvocationTargetException] with root cause
java.lang.NullPointerException

表现很奇怪:页面上查看源码,某个bean的myNo属性明明有值,但是到了action中,调试的结果显示,该属性为NULL, 结果是在该属性调用 myNo.getLength() 方法时,抛出空指针异常。

调查了很久,最后才发现是一个js函数出现了异常,导致后面提交的js代码中Form.enable("myForm") 没有执行,而myFrom中有一个Input为disabled:
class="java" name="code">
<input name="bean.myNo" maxlength="15" value="zhxxxxng" disabled="disabled" />

由于Form.enable("myForm") 没有执行,所以提交时该input为disabled状态,而disabled状态导致action中对应该bean的myNo属性为Null,所以空指针异常。

所以最后不要使用input 的 disabled 属性,而用readonly代替。二者都是不可编辑,区别仅仅是是否接受焦点和可用Tab导航到。当然还有disabled可能不是successful的。而readonly可能是successful的。

所以readonly比disabled更加健壮。因为一般我们使用readonly和disabled的目的是,该属性不可编辑。而不是该属性值不提交。
发表评论
用户名: 匿名