白桦yuma
2018-05-23 06:17
采纳率: 98.1%
浏览 5.0k
已采纳

jsp页面中怎么实现只要一个按钮就能完成添加和修改两个功能?

第一次进入页面时,由于数据库没有数据,所以在表单里填写完数据后,
点击保存按钮,就可以调用后台的插入方法将数据都插入进数据库,那么
当同一个用户再次进入页面时,由于已经有数据了,页面上的表单里也把
数据显示了出来,那么如果用户修改了表单里的某些数据后,再点击保存
按钮时,怎么才能不调用后台的插入方法,而是调用更新方法来修改数据呢?
必须要在同一个按钮实现,不能添加一个新的修改按钮。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

14条回答 默认 最新

  • 超级IT大神 2018-05-24 13:56
    已采纳

    数据库中设置一个字段来作为是否为第一次添加数据的判断,前台读取这个数据,在点击按钮时,先根据这个数据判断是否为第一次添加数据,在进行添加或者修改操作

    点赞 打赏 评论
  • juno12 2018-05-23 06:22

    隐藏一条记录的唯一标记,如果这个标记存在,则说明 这条记录已经存在,后台处理 调用更新方法,如果标记为空, 则说明这条记录不存在,后台处理 调用 新增方法

    点赞 打赏 评论
  • 黑色天空 2018-05-23 06:22

    按钮点击后先做一步判断,判断提交的数据在数据库存不存在,存在就更新,不存在就插入

    点赞 打赏 评论
  • LuoBinary 2018-05-23 06:22

    用同一个接口传到后台,后台判断数据库是否有数据,没有就执行插入操作,有就执行更新操作。

    点赞 打赏 评论
  • 土豆_ 2018-05-23 06:27

    修改的的时候一定是根据一个唯一的标识去修改的,所以点击按钮可以先根据这个标识在数据中先查找,如果不存在就走保存的方法,如果存在,就走修改的方法

    点赞 打赏 评论
  • 途径的你 2018-05-23 06:29

    你在提交到后台进行保存的时候会有记录的id;根据id判断;id为空的时候就是新增;有id就根据id去更新

    点赞 打赏 评论
  • 途径的你 2018-05-23 06:33

    ** public @ResponseBody JSONObject list(Login login) throws UnsupportedEncodingException, NoSuchAlgorithmException {
    //返回结果
    JSONObject result=new JSONObject();
    result.put("status",0);
    if(login.getId()!=null){//根据id去判断;有id编辑
    Login duplicateLogin=loginService.findDuplicateName(login);
    if(duplicateLogin==null){
    login.setPassword(EncoderByMd5.EncoderByMd5(login.getPassword()));
    loginService.update(login);
    }else{
    result.put("msg","用户名或者电话已经存在;请重新填写");
    }
    }else{//没有id新增
    Login duplicateLogin=loginService.findUserByUsername(login);
    if(duplicateLogin!=null){
    result.put("msg","用户名或者电话已经存在;请重新填写");
    }else{
    if(StringUtils.isNotBlank(login.getPassword())){
    login.setPassword(EncoderByMd5.EncoderByMd5(login.getPassword()));
    }else{
    login.setPassword(EncoderByMd5.EncoderByMd5("123456"));
    }
    int i=loginService.insert(login);
    if(i>0){
    result.put("status",1);
    result.put("msg","添加成功");
    }else{
    result.put("msg","添加失败");
    }
    }
    }
    return result;
    }

    点赞 打赏 评论
  • 程序员小辰 2018-05-23 06:40

    可以让这个按钮调用固定的save()方法,后台save()中先判断数据库是否有数据。
    或者前端加一个隐藏标签查数据,按钮点击时调用js代码判断隐藏标签值是否存在,然后调用对应的后台insert/update方法。

    点赞 打赏 评论
  • ontalk.club 2018-05-23 07:19

    saveOrupdate

    点赞 打赏 评论
  • m0_37694355 2018-05-23 07:26

    由于插入和修改是两个完全不同的操作,所以就需要进行判断什么时间该进行插入、什么时间进行修改。
    楼主的问题这样解决:
    设置一个隐藏的ID来标识。进行插入、修改前先查询是否有该记录。没有就进行插入,有就进行删除。
    那么ID怎样生成。可以根据数据库的主键生成一个唯一的ID+1。就是在打开界面时

    点赞 打赏 评论
  • east123321 2018-05-23 07:59

    通过form表单提交到后台,先根据提交的某一个属性,在数据库中检索,如果结果为空 ,则调用.save()方法;如果结果不为空,进行update操作.

    点赞 打赏 评论
  • 赵小白666 2018-05-23 09:01

    判断是否传入ID了,来区别是保存还是修改

    点赞 打赏 评论
  • weixin_37544241 2018-05-23 09:09

    在表中建立主键id,并在jsp页面中建立隐藏id的隐藏字段。
    在后台,保存数据时使用 hibernate的saveOrUpdate()方法,这个方法是更新或者插入,有主键就执行更新,如果没有主键就执行插入。

    点赞 打赏 评论
  • 一名程序媛 2018-05-24 06:51

    设置一个隐藏属性,来判断执行那个操作

    点赞 打赏 评论

相关推荐 更多相似问题