首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

来看看啊

2011-12-10 
高手进来看看啊代码如下publicclassSpringBaseBeanActionextendsActionSupport{StringbeanName publi

高手进来看看啊
代码如下
public   class   SpringBaseBeanAction   extends   ActionSupport{

  String   beanName= " ";
  public   SpringBaseBeanAction(){
 
  }
 
  public   SpringBaseBeanAction(String   beanName){
  this.beanName=beanName;
  }
 
public     Object   getBean(String   beanName){
WebApplicationContext   webapp=getWebApplicationContext();
Object   obj=webapp.getBean(beanName);
return   obj;
}

public     Object   getBean(){
WebApplicationContext   webapp=getWebApplicationContext();

return   webapp.getBean(beanName);
}


}
以上是调用getBean(String   beanName)得到类的实例


package   com.txForum.dao;

import   net.sf.hibernate.Query;

import   org.apache.commons.logging.Log;
import   org.apache.commons.logging.LogFactory;
import   org.hibernate.HibernateException;
import   org.hibernate.Session;
import   org.springframework.context.ApplicationContext;
import   org.springframework.context.support.FileSystemXmlApplicationContext;
import   org.springframework.orm.hibernate3.HibernateCallback;
import   org.springframework.orm.hibernate3.support.HibernateDaoSupport;


import   java.util.*;
public   class   CommonUserDao   extends   HibernateDaoSupport   {

private   static   final   Log   log   =   LogFactory.getLog(CommonUserDao.class);

protected   void   initDao()   {
//do   nothing
}


public   List   ExecQueries(final   String   sql){
return   (List)getHibernateTemplate().execute(new   HibernateCallback(){
public   List   doInHibernate(Session   session)throws   HibernateException{
List   result=session.createQuery(sql).list();
return   result;
}
});
 

}

}

在spring   的appilcationContext.xml里CommonUserDao类配置如下

<bean   id= "CommonUserDao "
class= "com.txForum.dao.CommonUserDao ">
<property   name= "sessionFactory ">
<ref   bean= "TXFSessionFactory "   />
</property>
</bean>

问题就是在jsp页面中始终都得不到该对对像的实例
<%@   page   language= "java "   pageEncoding= "UTF-8 "%>

<%@   page   import= "com.txForum.dao.* "   %>  
<%@   page   import= "com.txForum.struts.action.* "   %>
<%

SpringBaseBeanAction   s=new   SpringBaseBeanAction();
CommonUserDao   c=(CommonUserDao)s.getBean( "CommonUserDao ");

  %>

以下是报错内容
java.lang.NullPointerException
com.txForum.struts.action.SpringBaseBeanAction.getBean(SpringBaseBeanAction.java:20)
org.apache.jsp.web.test1_jsp._jspService(test1_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


请问为什么会得这空指针异常
我觉得是WebApplicationContext   webapp对像根本就没有得到



[解决办法]
空指针 看一下test1_jsp.java:61对映的是什么?
[解决办法]
WebApplicationContext context =
(WebApplicationContext) config.getServletContext().getAttribute
(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

来得到WebApplicationContext的webapp对象

热点排行