java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity异常的易被忽略的原因

最近在开发Spring+Hibernate+Struts整合开发的时候遇到几次这个异常,故记之。

除了网上说的:

jsp页面中各个控件的name属性与Action中模型驱动对象的名字不一致原因之外,还有一个不起眼的原因,不过不注意也可能发生。

我就发生了两次。就是在Action的代码里面缺少set方法。

       

例如:

package com.hugehard.campussecond.action;


import java.util.List;


import com.hugehard.campussecond.model.Catagory;
import com.hugehard.campussecond.service.CatagoryManager;
import com.hugehard.campussecond.util.Const;
import com.opensymphony.xwork2.ActionSupport;


public class CatagoryAction extends ActionSupport {
private CatagoryManager catagoryManager;
private Integer id;
private Catagory catagory;
private List<Catagory> catagorys;
private static final long serialVersionUID = 1L;


public void setCatagoryManager(CatagoryManager catagoryManager) {
this.catagoryManager = catagoryManager;
}
 
public Catagory getCatagory() {
return catagory;
}


public void setCatagory(Catagory catagory) {
this.catagory = catagory;
}  //注意这儿,如果忘了set它就会出现上述错误。在调用add方法的时候


public List<Catagory> getCatagorys() {
return catagorys;
}


public void setCatagorys(List<Catagory> catagorys) {
this.catagorys = catagorys;
}


public CatagoryManager getCatagoryManager() {
return catagoryManager;
}


public String load() {
if (id == null)
catagory = catagoryManager.get(id);
return SUCCESS;
}
public String add(){
catagoryManager.insert(catagory);
return SUCCESS;
}
public String update() {
catagoryManager.update(catagory);
return SUCCESS;
}


public String delete() {
if (id == null)
catagoryManager.delete(id, Const.UNSORTED_ID);
return SUCCESS;
}


public String list() {
catagorys = catagoryManager.list();
return SUCCESS;
}
}

除此之外,还有一个情况,刚刚发现的,也是太粗心了:

<!-- 分类管理 -->
<action name="listCatagorys" class="catagoryAction"

<!-- 注意这儿,看下面我写了一个addCatagory,成功之后转向listCatagorys,而我之前在listCatagorys里写的是method="add",而正确的是list,如//果是add的话出现的效果就是,数据库里面的确也添加进东西了,但是转到xx/listCatagorys之后却又来一个null entity异常。--!>
method="list">
<result name="success">/admin/listCategorys.jsp</result>
</action>
<action name="addCatagory" class="catagoryAction"
method="add">
<result name="success" type="redirect">/admin/listCatagorys</result>
</action>
<action name="editCatagory" class="catagoryAction"
method="load">
<result name="success" type="redirect">/admin/listCatagorys</result>
</action>
<action name="updateCatagory" class="catagoryAction"
method="update">
<result name="success" type="redirect">/admin/listCatagorys</result>
<result name="input" type="redirect">/admin/listCatagorys</result>
</action>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值