我们在SSH中进行update操作时,有时只需要修改domain的某几个字段。对于这样的操作如何new 出一个新的对象,然后再为对象的每个属性赋值,操作就过于繁琐了。而且如果赋值有遗漏,更容易update后让domain的属性出现null值。
这是我们可以这样操作:
首先,必须有OID的值
然后根据OID的值得到对应的domain,然后为domain重新设置需要修改的那几个字段的值,
最后update到数据库中。
具体代码如下:
//修改日志
public ActionForward updateLog(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
//得到form表单
LogForm logForm = (LogForm) form;
//获得OID的值
int logid = Integer.parseInt(logForm.getLogid());
//获取log对象
Log log = (Log) logServiceInter.findById(Log.class, logid);
//为log对象需要修改的三个字段重新赋值
log.setTitle(logForm.getTitle());
log.setLogContent(logForm.getLogContent());
log.setPlanTomorrow(logForm.getPlanTomorrow());
System.out.println(log.toString());
try {
//调用service层的方法,将数值更新到数据库中
logServiceInter.update(log);
return mapping.findForward(“operok”);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return mapping.findForward(“opererr”);
}
}