当前位置: 代码迷 >> Java Web开发 >> 按书下敲入代码 将JSP提交的表单封装成一个JAVABEAN,运行jsp后可以看到表单 但提交时报错 。请教是什么原因
  详细解决方案

按书下敲入代码 将JSP提交的表单封装成一个JAVABEAN,运行jsp后可以看到表单 但提交时报错 。请教是什么原因

热度:2720   发布时间:2013-02-25 21:08:34.0
按书上敲入代码 将JSP提交的表单封装成一个JAVABEAN,运行jsp后可以看到表单 但提交时报错 。请问是什么原因?
本帖最后由 xiulidefeng2012 于 2012-11-19 13:49:20 编辑  按书上敲入代码 将JSP提交的表单封装成一个JAVABEAN,运行jsp后可以看到表单 但提交时报错 。请问是什么原因?
报错如下:
java.lang.NullPointerException
controller.Login.validate(Login.java:19)
com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:235)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:247)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
------最佳解决方案--------------------------------------------------------
请问一下你的javabean有不有get set方法呢
------其他解决方案--------------------------------------------------------
controller.Login.validate(Login.java:19)

Please  look validate 19 Line 

NullPointerException 
------其他解决方案--------------------------------------------------------
你的jsp页面中表单的name是不是 loginInfoRef.属性名呢,还有你的javabean有没有get    set方法
------其他解决方案--------------------------------------------------------
if(null!=loginInfoRef.getPassword()&&"".equals(loginInfoRef.getPassword())){
this.addFieldError("loginInfoRef.password","对不起,密码不可以为空!");

------其他解决方案--------------------------------------------------------
entity 实体类里没有属性的get set方法 。??
------其他解决方案--------------------------------------------------------
controller.Login.validate(Login.java:19)
////控制台已经说了Login类的第19行,引发了一个空指针
如果表单有输入数据,那么你提交的时候报出nullpoint,应该是表单的数据提交时没有被封装到bean中去。
看下bean中,有没有设置属性的方法。get/set
------其他解决方案--------------------------------------------------------
if(null!=loginInfoRef.getUsername()&&"".equals(loginInfoRef.getUsername())){
this.addFieldError("loginInfoRef.username","对不起,用户名不可以为空!");
}
if(null!=loginInfoRef.getPassword()"".equals(loginInfoRef.getPassword())){
  相关解决方案