包名,引入名忽略,代码如下:public class UserAction extends DispatchAction {

private UserManager userManager;
private PersonManager personManager; @Override
protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

                //这两句就是查找对应的数据,方法确保已经正确(因为单独调用的话都没问题)
request.setAttribute("user", userManager.searchUsers());//--------这是第1句 request.setAttribute("person", personManager.searchPersons());//--------这是第2句

return mapping.findForward("index");
} public void setUserManager(UserManager userManager) {
this.userManager = userManager;
} public void setPersonManager(PersonManager personManager) {
this.personManager = personManager;
}}beans,struts.xml等配置都正确!
现在的问题是:
在UserAction里面调用第1句的话,数据查找出来也没有问题,在PersonAction里面调用第2句,数据也查找的出来。
然后在UserAction里面调用第2句personManager的方法,不管怎么弄,返回的都是空值!!!
我在前面加上System.out.println("start");
后面加上System.out.println("end");
后台打印start之后,后面就没再执行下去了,然后前台返回的还是“(一个点)null”不知道为什么调用不了personManager,是注入的问题吗?配置什么的跟UserManager都一样,我试了其他的xxxManager也都一样调不了,返回null!请知道的帮忙指出问题所在,调了一天没调出来。在线等,非常感谢!

解决方案 »

  1.   

    知道问题所在了,引用的Manager也要在Action里面配置一下!
      

  2.   

    我不太知道你在干什么
    不过你说到struts.xml
    那你要使用struts2的技术的话
    需要对你的
        private UserManager userManager;
        private PersonManager personManager;
    进行初始化
    也就是你只声明而没定义
    如果你是从页面传递进来的元素
    你需要有set和get方法才行你在文件里进行那个配置的话
    跟我上述的方法是一样的效果
    不过我还是建议你按照struts2的方法去做
      

  3.   

    你用的什么做持久化操作,JDBC还是HIBERANTE,如果是JDBC的话,最好看看你JDBC的连接有没问题,就是连接是不是被关掉了
    我猜测的,不知道对不对
      

  4.   

    肯定是applicationContext.xml配置文件中注入的问题我感觉你是注入了一个
    如果你的Action中同时调用了这两个业务逻辑层
    就应该把userManager和personManager这两个业务逻辑层 都注入到相同的一个Action里边
      

  5.   

    我就说嘛  你怎么不给出struts.xml  里面肯定有问题
      

  6.   

    确实如fei1502816所说,前天自己已经知道问题所在了,谢谢大家!