包名,引入名忽略,代码如下: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!请知道的帮忙指出问题所在,调了一天没调出来。在线等,非常感谢!
不过你说到struts.xml
那你要使用struts2的技术的话
需要对你的
private UserManager userManager;
private PersonManager personManager;
进行初始化
也就是你只声明而没定义
如果你是从页面传递进来的元素
你需要有set和get方法才行你在文件里进行那个配置的话
跟我上述的方法是一样的效果
不过我还是建议你按照struts2的方法去做
我猜测的,不知道对不对
如果你的Action中同时调用了这两个业务逻辑层
就应该把userManager和personManager这两个业务逻辑层 都注入到相同的一个Action里边