问题是这样的,我的action里面有一个业务逻辑层的一个属性,然后,如果我在struts.xml里面给action指定方法的话,
然后就是正常,如果是动态的方法的话,他就会报空指针异常的错误,谁知道这个是什么原因啊?如果要我贴代码的话,看到有人回复,我会贴出来的

解决方案 »

  1.   

    <bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <value>classpath:jdbc.properties</value>
    </property>
    </bean> <bean id="dataSource" destroy-method="close"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    </bean> <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 
    <property name="annotatedClasses">
    <list>
    <value>com.bjsxt.model.User</value>
    <value>com.bjsxt.model.Log</value>
    </list>
    </property>
     -->
     <property name="packagesToScan">
    <list>
    <value>sh.java.entity</value>

    </list>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <bean id="userdao" class="sh.java.dao.UserDAOImpl">
    <property name="hibernateTemplate" ref="hibernateTemplate">
    </property>
    </bean>
      
      <bean id="userserv" class="sh.java.services.UserServicesImpl">
       <property name="userDao"  ref="userdao"></property>
      </bean>
       <bean  id="index" class="sh.java.web.UserAction" scope="prototype">
        <property name="userServices" ref="userserv"></property>
       </bean>
    </beans>
    这个是applicationContext的xml
      

  2.   

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.objectFactory" value="spring"/>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <package name="registration" extends="struts-default">
    <action name="index" class="sh.java.web.UserAction" method="add">
    <result name="success">/success.jsp</result>
    <result name="fail">/fail.jsp</result>

    </action>
    </package>
    </struts>

    这个是struts的xml
      

  3.   

    public class UserAction extends ActionSupport implements RequestAware{


    private Map<String,Object> request;
    private User1 user;
    private IuserServices userServices;
    public void setUserServices(IuserServices userServices) {
    System.err.println("set UserServices");
    this.userServices = userServices;

    }


    public String add() throws Exception {
    System.out.println("execute");
    userServices.addUser(user);
    return "success";
    } public String doLogin() throws Exception {
    System.out.println("userservices:"+userServices);
    if(userServices.findByLogin(getUser()))
     {
     return SUCCESS;
     }
     return INPUT;
    }
    public User1 getUser() {
    return user;
    }
    public void setUser(User1 user) {
    System.out.println("setUser");
    this.user = user;
    }

    public String findAllUser()
    {
    System.out.println("findAllUser");
    System.out.println(userServices);
    System.out.println(userServices.findAllUser().size());
       request.put("lists", userServices.findAllUser());
       return "list";
    }
    public void setRequest(Map<String, Object> request) {

    this.request=request;
    }
    public Map<String, Object> getRequest() {
    return request;
    }} 
    这个就是我的action
    然后在调用这个action的某个方法的时候,会报我那个userServices是空的
    我都快郁闷死了
      

  4.   

    你的UserAction都已经交给了spring管理 
    你的struts.xml中配置错误
    <bean id="index" class="sh.java.web.UserAction" scope="prototype">
    <property name="userServices" ref="userserv"></property>
    </bean><!--class指向上面的 id-->
    <action name="index" class="index" method="add">
    ...
      

  5.   

    那我应该怎么写呢? 在struts里面配置的有问题吗?如果有 应该怎么改?
      

  6.   

    struts配置有问题。
    把<bean id="xxx"> 
    </bean>
    这些都删除掉.和spring的配置重复了。