java的struts2框架的action的成员变量为何是空的?
publicclassMyAction{privateListalist;privateBaseDaobd;//getter,setterpublicStringexec...
public class MyAction{
private List alist;
private BaseDao bd;
//getter,setter
public String execute(){
alist=bd.getAll();
}
}
一运行就提示我bd是空的 这是怎么回事? 我如果初始化BaseDao bd=new BaseDaoImpl();则没事
这是怎么回事?struts2会依赖注入的啊 只要有getter和setter 展开
private List alist;
private BaseDao bd;
//getter,setter
public String execute(){
alist=bd.getAll();
}
}
一运行就提示我bd是空的 这是怎么回事? 我如果初始化BaseDao bd=new BaseDaoImpl();则没事
这是怎么回事?struts2会依赖注入的啊 只要有getter和setter 展开
4个回答
展开全部
首先这个db根本就不需要在页面中使用,只要把数据取出来赋值到alist中,在页面中遍历alist就可以,所以要给alist属性加get和set方法,而db需要你手动实例化这个对象
struts2会依赖注入是指你发送的请求参数,根据参数名获得这个参数名的setter方法,才能自动赋值的,如果你的请求中加上参数db=xxx,这个有用吗,肯定是不会获得BaseDao这个类的对象的,所以struts2的自动赋值对db是没有用的,一般参数的类型都是String或int这些基本类型
struts2会依赖注入是指你发送的请求参数,根据参数名获得这个参数名的setter方法,才能自动赋值的,如果你的请求中加上参数db=xxx,这个有用吗,肯定是不会获得BaseDao这个类的对象的,所以struts2的自动赋值对db是没有用的,一般参数的类型都是String或int这些基本类型
展开全部
你搞错了吧,用getter和setter方法是Action能接收从View层返回的数据和View能获取到Action中的属性,如果要依赖注入的话应该要与Spring进行集成吧,再通过Spring的依赖注入(在属性名上加@resource注解)吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你action,没有get和set 方法,所以是空的。
追问
有啊
追答
贴出来,我看看,我没看到,我看看有什么问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-01-27
展开全部
如果要自动注入,需要配合Spring,由Spring通过set方法进行注入。
追问
没有spring框架就只能自己初始化?我记得只要有了getter和setter就不用初始化了吧
追答
目前据我个人的知识,没有第三方自动注入框架提供支持,Struts2并没有自动注入的功能。如果你指的像 前台页面提交参数值过来Struts2可以自动设置到对应的java bean上,这个是有的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询