最近改一个项目需要给原有节目添加一个标签,并做出判断,我们的项目是用的Hibernate跟Spring整合开发,其中用SpringMVC取代Struts,废话不多说,贴代码。
//此方法用作更改
public ModelAndView editdo(HttpServletRequest request,HttpServletResponse response) throws Exception {
int programId = StrUtils.parseInt(request.getParameter("programId"));
int auditStatus = StrUtils.parseInt(request.getParameter("auditStatus"), -1);
String programLog = "";
Program pro = proService.getProgramById(programId);
programLog = pro.getName()+";"+pro.getSubheading1()+";"+pro.getSubheading2()+";"+pro.getDuration()+";"+pro.getStartDate()+";"+pro.getDirector()+";"+pro.getActor()+";"+pro.getProducer()+";"+pro.getProdCountry()+";"+pro.getKeywords()+";"+pro.getDesc()+";"+pro.getKeepDays();
Date start = null;
    String sStart = request.getParameter("start");
    Date date = new Date(System.currentTimeMillis());
    
//     int catalogId = StrUtils.parseInt(request.getParameter("catalogID"));
    
Map<String, String[]> attris = request.getParameterMap();
WebUtils.setObjectValues(pro, attris);
if(sStart != null && !"".equals(sStart)){
     sStart = sStart.substring(0, 10);
     if(sStart.indexOf("-")>0){
     String[] temp = sStart.split(" ");
     String[] temp1 = temp[0].split("-");
     sStart = temp1[1]+"/"+temp1[2]+"/"+temp1[0];
}
//      System.out.println(sStart);
     if (sStart != null && !sStart.trim().equals("")) {
         start = Env.STANDARD_FORMAT.parse(sStart);
       }
     Timestamp ts = new Timestamp(start.getTime());
     pro.setStartDate(ts);
    }
if(auditStatus != -1 ){

pro.setAuditedTime(date);
}else{
pro.setEditedTime(date);
}
String responseStr = null;
this.judgment(pro, 1);
if(this.judgment(pro, 1) == 0)
{
proService.update(pro);

responseStr = "操作成功";
programLog +="--->"+pro.getName()+";"+pro.getSubheading1()+";"+pro.getSubheading2()+";"+pro.getDuration()+";"+pro.getStartDate()+";"+pro.getDirector()+";"+pro.getActor()+";"+pro.getProducer()+";"+pro.getProdCountry()+";"+pro.getKeywords()+";"+pro.getDesc()+";"+pro.getKeepDays();

if(pro.getAuditStatus()==Env.PROGRAM_AUDITSTATUS_INIT){
//记录日志
ProgramLog proLog = new ProgramLog();
proLog.settProgramByCProgramid(pro);
Users user = (Users) request.getSession(true).getAttribute("currentUser");
proLog.settUsersByCUserid(user);
proLog.setUserName(user.getName());
proLog.setIp(request.getRemoteAddr());
proLog.setOperation("编辑节目基本信息");
// Date date = new Date(System.currentTimeMillis());
proLog.setCreatedTime(date);
proLog.setDesc(programLog);
proService.saveProgramLog(proLog);
}else{
//记录日志
ProgramLog proLog = new ProgramLog();
proLog.settProgramByCProgramid(pro);
Users user = (Users) request.getSession(true).getAttribute("currentUser");
proLog.settUsersByCUserid(user);
proLog.setUserName(user.getName());
proLog.setIp(request.getRemoteAddr());
proLog.setOperation("复审");
// Date date = new Date(System.currentTimeMillis());
proLog.setCreatedTime(date);
proLog.setDesc("复审状态ID=="+pro.getAuditStatus());
proService.saveProgramLog(proLog);
}
}
else
{
System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&操作失败");
responseStr = "操作失败";
}


WebUtils.outAjax(response, responseStr);
return null;
}
//判断标题方法,deed为0则判断行为为添加,1为更改,返回值为0则表示符合标准,1为有错误。
public int judgment(Program pro,int deed)
{
int result = 1;
List<Program> prog = this.proService.select(pro,deed);
if(prog.size()==0)
{
result = 0;
}
return result;
}
dao已经确定是正确的。所以就不贴了,其实是代码写的太恶心我自己都不好意思贴出来,editdo后面的if判断,即使返回1数据库也会更改,但是页面打印更改失败,我分别给if,else添加了一行打印字符串,控制台没有打印if里面的字符串,好纠结啊求高手解决,我Spring用的不怎么熟练,不知道是不是事物环绕除了问题还是什么参数配置错了啊,可是那些都是项目经理写的,人家用的很好也不至于出错啊。