Struts2+Spring+JPA(Hibernate)报空指针问题? 有没有人遇到同样的问题··代码执行到Action里时调用biz方法时返回值是空的,报空指针了。。但测试这个biz方法时没问题的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道你的Action是否是让Spring来管理的,如果是的话,那很可能是Spring没有将Action注入进去或者Action中的Service层没有注入到Action中。 明显你的biz没被注入。所以action里调到的biz是空 @Controller("indexAction")@Scope("prototype")public class IndexAction extends ActionSupport implements SessionAware{ private GoodsBiz goodsBiz; public GoodsBiz getGoodsBiz() { return goodsBiz; } @Resource public void setGoodsBiz(GoodsBiz goodsBiz) { this.goodsBiz = goodsBiz; } private Map<String,Object> session=new HashMap<String, Object>(); public Map<String, Object> getSession() { return session; } public void setSession(Map<String, Object> arg0) { this.session=session; } private int count; public int getCount() { return count; } public void setCount(int count) { this.count = count; } public String getAllGoods(){ // try { List listGoods = goodsBiz.getAllGoods(); //这事报错的地方 count=listGoods.size(); session.put("listGoods", listGoods); // } catch (Exception e) { // System.out.println(e.getMessage()); // } System.out.println("test_Ok"); return "index"; }这里面的话有问题没? <struts> <constant name="struts.devMode" value="true"></constant> <package name="IndexAction" namespace="/" extends="struts-default"> <action name="indexAction" class="com.demo.action.IndexAction" method="getAllGoods"> <result name="index">/index.jsp</result> </action> </package></struts> Struts。xml biz 没有注入到这个 action 里边。 你在spring中没配置Action中的对象... <struts><constant name="struts.devMode" value="true"></constant><package name="IndexAction" namespace="/" extends="struts-default"><action name="indexAction" class="com.demo.action.IndexAction" method="getAllGoods"><result name="index">/index.jsp</result></action></package></struts> Struts。xml你的action是由struts2的容器管理的,没有用到spring容器里管理的acton,因此,你可以这样写试试:<constant name="struts.devMode" value="true"></constant><package name="IndexAction" namespace="/" extends="struts-default"><action name="indexAction" class="xxx(spring的actionbean)" method="getAllGoods"><result name="index">/index.jsp</result></action></package></struts> 补充一下:由于你采用的annotation,你可以这么写:<constant name="struts.devMode" value="true"></constant><package name="IndexAction" namespace="/" extends="struts-default"><action name="indexAction" class="IndexAction" method="getAllGoods"><result name="index">/index.jsp</result></action></package></struts> 同时还应该加入struts-spring的jar包,让spring管理action 我已经引用了这段代码了beans的<context:component-scan base-package="com.demo" /> 如果我没有记错的话,”我已经引用了这段代码了beans的<context:component-scan base-package="com.demo" />“spring的Ioc容器里已经有了这个action的bean,只要加上struts-spring插件让spring管理action,然后再加上class="IndexAction",说明一下,spring的Ioc容器会按照action的类名来创建bean。 jdbc连接SqlServer2008 hinernate出错! JTable排序 hibernate中的删除问题 如何让自己在JavaEE行业突出 JAVA 数据库连接池高并发 谁帮小弟看看这个XML的DTD问题?谢谢 100分问,java图形界面的应用程序问题 HashMap是什么东东 一个JavaWeb项目中怎么做到只用引入一次jquery ,js,css ?让其他页面直接继承这个页面? Access denied for user 'root'@'localhost' (using password: NO) 急 hibernate 注解 自己对自己的一对一配置
明显你的biz没被注入。所以action里调到的biz是空
@Scope("prototype")
public class IndexAction extends ActionSupport implements SessionAware{
private GoodsBiz goodsBiz; public GoodsBiz getGoodsBiz() {
return goodsBiz;
}
@Resource
public void setGoodsBiz(GoodsBiz goodsBiz) {
this.goodsBiz = goodsBiz;
} private Map<String,Object> session=new HashMap<String, Object>(); public Map<String, Object> getSession() {
return session;
}
public void setSession(Map<String, Object> arg0) {
this.session=session;
}
private int count; public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getAllGoods(){
// try {
List listGoods = goodsBiz.getAllGoods(); //这事报错的地方
count=listGoods.size();
session.put("listGoods", listGoods);
// } catch (Exception e) {
// System.out.println(e.getMessage());
// }
System.out.println("test_Ok");
return "index";
}
这里面的话有问题没?
<constant name="struts.devMode" value="true"></constant>
<package name="IndexAction" namespace="/" extends="struts-default">
<action name="indexAction" class="com.demo.action.IndexAction" method="getAllGoods">
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
Struts。xml
<constant name="struts.devMode" value="true"></constant>
<package name="IndexAction" namespace="/" extends="struts-default">
<action name="indexAction" class="com.demo.action.IndexAction" method="getAllGoods">
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
Struts。xml你的action是由struts2的容器管理的,没有用到spring容器里管理的acton,因此,你可以这样写试试:
<constant name="struts.devMode" value="true"></constant>
<package name="IndexAction" namespace="/" extends="struts-default">
<action name="indexAction" class="xxx(spring的actionbean)" method="getAllGoods">
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
<constant name="struts.devMode" value="true"></constant>
<package name="IndexAction" namespace="/" extends="struts-default">
<action name="indexAction" class="IndexAction" method="getAllGoods">
<result name="index">/index.jsp</result>
</action>
</package>
</struts>