Struts2关于Action构造方法的问题

如下:这是我的一个父类Action,因为子类Action需要频繁用到如下的公共字段,所以我想放到父类构造方法里面,项目启动时就自动保存到session,方便调用。但是项目... 如下: 这是我的一个父类Action,因为子类Action 需要频繁用到如下的公共字段,所以我想放到父类构造方法里面,项目启动时就自动保存到session,方便调用 。但是项目一启动就会报错 ,有经验的大虾们不吝回答 。或者有没有其他方法 。因为如果我有10个Action要用到如下公共字段,我就要重复写10次,显然过于繁琐 。

public BasicAction() {

List<PublicField> listUnderwriting = publicFieldBiz
.queryPublicField("审核意见");
this.getSession().setAttribute("listUnderwriting", listUnderwriting);
}

报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'basicAction' defined in file [C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\hr\WEB-INF\classes\aptech\six\hr\config\spring\hr_action_spring.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [aptech.six.hr.action.BasicAction]: Constructor threw exception; nested exception is java.lang.NullPointerException
展开
 我来答
忘却的星辰
2010-03-06 · TA获得超过781个赞
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
楼主的代码比较让人迷惑,publicFieldBiz不知道在哪里定义了?我猜测楼主的这个publicFieldBiz是通过Spring的依赖注入设置的,是不是? 如果是的话,那你这么写的确是有问题的,因为你使用的struts2,当接受到一个http请求的时候,底层框架代码会to能够反射的方式来构建你的这个Action.当构建这个Action的时候,publicFieldBiz还没有被spring注入,这个时候还是null, 所以会出错。
LHLBT3GOOD
2010-03-06 · TA获得超过546个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:540万
展开全部
如果你用到公共字段,那么就别放Action 里面啊,独立static不行?

或者可以看到,你既然用了spring,那么为什么不用spring帮助你注入呢?

你根本不需要放入Session,你做个字段(比如Map,Properties类型)
就可以了

如果你想在Session范围内让客户可以方便去到,那么还是推荐ThreadLocal,然后再Action 中获取好一些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨辰RainTime
2010-03-10
知道答主
回答量:19
采纳率:0%
帮助的人:21万
展开全部
servlet\listener
都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式