修改呢?
首先是获取一个对象的id,根据这个对象的id,把这个对象的所有信息传递到前端。
button这个按钮用过id查找对象,放在首页,同时为了确保id的准确性。把这个button放在首页列表每一行数据的旁边,新加一个td
update
然后查询数据到一个界面。这个界面可以是修改的界面。
01.dao层,新写一个select by id的方法 返回值是一个pojo对象
@Select("select * from tb_activity where id=#{id}")
Activity findById(Integer id);
02.在service层中,声明一个findbyid的方法
Activity findById(Integer id);
03.在serviceimpl层中,实现这个方法,用dao接口来实现。返回值是一个pojo对象
@Override
public Activity findById(Integer id) {
// TODO Auto-generated method stub
Activity act = activitydao.findById(id);
if(act==null)
throw new NoSuchElementException("对象可能已经不存在");
return act;
}
04.controller中,因为是超链接的方式传递过来的,所以写出对应的处理方法,此处的参数有id和model,id是首页,而model是在controller类中已经使用了serviceimpl,返回了一个pojo对象后,要用model来保存这个对象。
返回值填写insert的html文件名,因为格式是一样的,
这表示还要去修改insert的html文件,需要在标签后面添加th属性来接受后端传递来的对象。
@RequestMapping("doFindById")
public String doFindById(Model model,Integer id) {
Activity activity = ActivityService.findById(id);
model.addAttribute("act",activity);
return "activity_edit";
}
05.修改html文件。
每一li标签都要加上th属性,用el表达式来接受数据。
还要新添一个input 属性是hidden,用于区分update 和insert
06.修改 controller中的 insert方法
判断,如果传过来的pojo对象,getid是null,这表示insert方法,如果不是,就是update方法。
07.在去写update的dao层的sql语句
@Update("update tb_activity set title=#{title},category=#{category},startTime=#{startTime},endTime=#{endTime},remark=#{remark} where id=#{id}")
void updateActivity(Activity activity);
再在service层和serviceimpl中声明和实现这个update方法。
void updateActivity(Activity activity);
@Override
public void updateActivity(Activity activity) {
log.info("start{}",System.currentTimeMillis());
activityDao.updateActivity(activity);
log.info("end{}",System.currentTimeMillis());
}
08.最后在controller中去在insert方法响应中,用serviceimpl来实现
@RequestMapping("doSaveActivity")
public String doSaveActivity(Activity activity) {
if(activity.getId()==null) {
ActivityService.saveActivity(activity);
}else {
ActivityService.updateActivity(activity);
}
return "redirect:doActivityUI";
}
最后如何在id=null时候,去新增一个用户,打开insert界面呢?
在首页写一个button,转到这个界面。
<button onclick="javascript:location.href='doActivityEdit'">创建活动button>
controller中写出回应。
@RequestMapping("doActivityEdit")
public String doActivityEditUI(Model model) {
model.addAttribute("act",new Activity());
return "activity_edit";
}