那天我也发了也一个帖子问了问,可能是应为我描述的不很完整,所以没得到解决,这个问题也困扰我好几天了,我在网上找了很多解决方法,可是一个也没能帮助我,我相信好多spring的初学者也遭遇到我这样的问题的困扰吧,希望高手们知道的麻烦帮我看下,谢谢.!我这样今天我自己弄了一个简单的小项目来测试,无论怎么我的spring始终不能注入成功,错误都是NullPointerException,因为我要在Login这个类里边用dao查询数据库,我就给我这个Login类定义了一个dao的对象,生产了get和set方法,试图用spring把一个到对象注入到login里边去,然后login在查询数据库.具体代码如下://这是我的Login类
package org.action;
public class Login extends ActionSupport{
private String username ;
private String password ;
private UserDao ud ;  //这个是dao,我试图用spring注入进来

public UserDao getUd() {
return ud;
}
public void setUd(UserDao ud) {
this.ud = ud;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public String execute() {
ActionContext act = ActionContext.getContext() ;
Map<String,Object> session = act.getSession() ;
if(ud.query(username, password)){   //这里在调用dao查询数据库,如果返回true就跳转到succeed页面.
session.put("username", username) ;
session.put("password", password) ;
return "succeed" ;
}
return "index" ;
}
}
package org.jdbc; //这是的dao类,我也贴上来.
public class UserDao {
public UserDao(){
try {
Class.forName("com.hxtt.sql.access.AccessDriver") ;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public boolean query(String username,String password){
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet  rs = null ;
try {
conn = DriverManager.getConnection("jdbc:access:///F:\\Database\\UserData.mdb");
pstmt = conn.prepareStatement("select * from manager");
rs = pstmt.executeQuery();
while(rs.next()){
if(username.equals(rs.getString(1))&&password.equals(rs.getString(2))){
return true ;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}<!--这是我的spring的applicationContext.xml配置文件,代码就只有那么两句,头文件我没复制上来-->
<?xml version="1.0" encoding="UTF-8"?>
<beans
<bean id="userDao" class="org.jdbc.UserDao"></bean><!--首先得到得打这个UserDao对象-->
<bean id="login" class="org.action.Login">         <!--然后再将上面的那个UserDao注入到Login里边-->
<property name="ud" ref="userDao"/></bean><!--也就是将userDao这个查询数据库的类,注入到Login里边的ud-->
</beans><!--这是我的struts.xml的struts2的配置文件,代码也只有这么多,头文件没复制上来-->
<struts>
<package name="hs" extends="struts-default">
<action name="login" class="org.action.Login">
<result name="index">index.jsp</result>
<result name="succeed">succeed.jsp</result>
</action>
</package>
</struts><!--这是我的web.xml-->
<?xml version="1.0" encoding="UTF-8"?>
  <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
错误始终是这种:
2011-4-19 14:14:43 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at org.action.Login.execute(Login.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221).....就这问题让我做到一般的项目没办法做下去了.