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
展开
 我来答
lmy_sk521
2013-01-27 · TA获得超过2272个赞
知道小有建树答主
回答量:1330
采纳率:73%
帮助的人:725万
展开全部
首先这个db根本就不需要在页面中使用,只要把数据取出来赋值到alist中,在页面中遍历alist就可以,所以要给alist属性加get和set方法,而db需要你手动实例化这个对象

struts2会依赖注入是指你发送的请求参数,根据参数名获得这个参数名的setter方法,才能自动赋值的,如果你的请求中加上参数db=xxx,这个有用吗,肯定是不会获得BaseDao这个类的对象的,所以struts2的自动赋值对db是没有用的,一般参数的类型都是String或int这些基本类型
红佛壁纸
2013-01-27 · TA获得超过352个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:117万
展开全部
你搞错了吧,用getter和setter方法是Action能接收从View层返回的数据和View能获取到Action中的属性,如果要依赖注入的话应该要与Spring进行集成吧,再通过Spring的依赖注入(在属性名上加@resource注解)吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyong_jav
2013-01-27
知道答主
回答量:91
采纳率:0%
帮助的人:20.1万
展开全部
因为你action,没有get和set 方法,所以是空的。
追问
有啊
追答
贴出来,我看看,我没看到,我看看有什么问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-27
展开全部
如果要自动注入,需要配合Spring,由Spring通过set方法进行注入。
追问
没有spring框架就只能自己初始化?我记得只要有了getter和setter就不用初始化了吧
追答
目前据我个人的知识,没有第三方自动注入框架提供支持,Struts2并没有自动注入的功能。如果你指的像 前台页面提交参数值过来Struts2可以自动设置到对应的java bean上,这个是有的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式