环境:weblogic815 + oracle1021
开发工具:eclipse + myeclipse(hibernate3.1.9,用的是eclipse插件,没有用myeclipse自带的)
框架:struts1.1 + hibernate3.1.9
问题:当数据库某个字段为空时,如果在action里面需要对其进行判断或其他操作(如indexof等)的时候,程序就会抛出异常,如下。尝试了很多空值判断方法,网上也看到一些关于这个问题的解决办法,最后还是没有让自己如愿。。。
抛错:
Error 500--Internal Server Error
java.lang.NullPointerException at com.hntax.struts.action.HtArtsubEditAction.execute(HtArtsubEditAction.java:129) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.system.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:31) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) |
解决办法:尝试了多种方法后,我突然发现可以在hibernate自动生成的Base**.java类里面进行判断的!!
最后我就是在Base**.java里面的getter中加了个判断,若为空,则返回空值或返回一个自己期望的值。
到此,问题顺利解决。。。