SpringSide删除操作

方式一:

Jsp中:

case "delete":

                   $.ligerDialog.confirm[d1] ('确定删除?', function (y)

                    {

                        if (!y) return;

                        f_handle[d2] [d3] ("this.customid","cusinformation!delete.action");

                    });

                    break;

//获得选中的行

function getSelectIds(){

        var rowsdata = gridManager.getCheckedRows();

            if (!rowsdata.length)

            {

                $.ligerDialog.alert('请先选择行!');

                return;

            }

            var idStr = "";

            $(rowsdata).each(function (i, item)

            {

                idStr += this.customid;

                if (i < rowsdata.length - 1) idStr += ",";

            });

[d4]             return idStr;

        }

Action

private String ids;

@Override

   @SysLogAnnotation(moduleId = 1001)

   public String delete() throws Exception {

      JSONObject result = new JSONObject();

      try {

        if (ids != null) {

           String[] idArray = ids.split(",");[d5] 

           for (String tmp : idArray[d6] ) {

              cusInfoManager.logicDelete(StringValueUtils.getLong(tmp));

           }

           result.put("flag", true);

        } else {

           result.put("flag", false);

           result.put("errormsg", "没有选择客户记录");

        }

      } catch (Exception e) {

        result.put("flag", false);

        logger.error("删除客户出错", e);

        throw e;

      }

      Struts2Utils.renderText(result.toString());

      return NONE;

   }

 

Service

/**

    * 逻辑删除客户

    * @param id

    */

   public void logicDelete(Long id){

      CusInformation entity=cusInfoDao.get(id);

      entity.setStatus(2);[d7] 

      cusInfoDao.save(entity);

   }

Dao

方式二:不允许删除初始化数据

Jsp:

case "delete":

                   //暂时这样控制初始化数据不允许删除

                 var rowsdata = gridManager.getCheckedRows();

                   var flag=false;

                   $(rowsdata).each(function(){

                     if(f_initdata(this.tagid)){

                        flag=true;

                        return;

                     }

                   });

                   if(flag){

                       $.ligerDialog.warn("初始化数据不允许删除");

                       return;

                   }

                   $.ligerDialog.confirm('确定删除?', function (y)

                   {

                        if (!y) return;

                            f_handle("this.tagid","custag!delete.action");

                   });

                   break;

/**

         * 暂时这样控制初始化数据不允许删除

         * @param {Object} id

         * @return {TypeName}

         */

        function f_initdata(id){

        if(parseInt(id)<100){

            return true;

        }else{

            return false;

        }

        }

Action:

@Override

   @SysLogAnnotation(moduleId=1003)

   public String delete() throws Exception {

      // TODO Auto-generated method stub

      JSONObject result = new JSONObject();

      int retFlag=0;

      try{

        if(ids!=null){

           String[] idArray=ids.split(",");

           List<Long> idList=new ArrayList<Long>();

           for(String tmp:idArray){

              //cusTagManager.delete(StringValueUtils.getLong(tmp));

              idList.add(StringValueUtils.getLong(tmp));

           }

           retFlag=cusTagManager.delete(idList);

           if(retFlag==0){

               result.put("flag", true);

           }else{

              result.put("flag", false);

              result.put("errormsg", "标签有关联的客户,不允许删除");

           }

        }else{

           result.put("flag", false);

           result.put("errormsg", "id为空");

        }

        Struts2Utils.renderText(result.toString());

      }catch(Exception e){

        result.put("flag", false);

        result.put("errormsg", "操作异常");

        Struts2Utils.renderText(result.toString());

        logger.error("删除客户标签出错", e);

        throw e;

      }

      return NONE;

   }

Service:

/**

    * 判断标签是否关联了客户,如果关联了客户则不允许删除

    * @param ids

    * @return 0:成功删除,1:有关联的客户

    */

   public int delete(Collection<Long> ids){

      CusTag entity=null;

      for(Long id:ids){

        entity=cusTagDao.get(id[d8] );

        if(entity.getCustomListR3[d9] ().size()>0){

           return 1;

        }

      }

      for(Long id:ids){

          cusTagDao.delete(id);

      }

      return 0;

   }

Dao:

方式三:有关联不能删

分析逻辑:

1,        要分两次进入action,当点击删除的时候在jsp页面利用ajax请求进action得到一个list集合返回jsp页面

2,        在jsp页面需要对返回函数进行处理,如果list不为0,则说明根据分类classid查到了下面的实体类,这说明关联了,所以这个classid是不可以删除的。

3,        这时就return“”;,否则进else。把删除方法放在else里面。

Jsp:

{ text: '删除', click:f_delete, id:"delete", img: ""+ctx+"/js/images/page_delete.png" }

function f_delete(){

         $.ligerDialog.confirm('确定删除?', function (y)

                    {

                        if (!y) return;

                        var rowsdata = gridManager.getCheckedRows();

                     if (!rowsdata.length)

                    {

                        $.ligerDialog.alert('请先选择行!');

                        return;

                    }

                    var idStr = "";

                    $(rowsdata).each(function (i, item)

                    {

                        idStr += eval(this.newsclassid);

                        if (i < rowsdata.length - 1) idStr += ",";

                    });

                 if (idStr == "")

                    {

                        $.ligerDialog.alert('没有可以操作的数据!');

                        return;

                    }

                   while (idStr.indexOf(",,") > -1) idStr = idStr.replace(",,", ",");

                    if (idStr.lastIndexOf(",") == idStr.length - 1) idStr = idStr.substring(0, idStr.length - 1);

                    var paramUrl="ids="+idStr;

                       

                        $.post("newsissueclassify!checkNewsclassidIsUse.action",paramUrl,function(data[d10] ){

                            if(data != ""){

                              $.ligerDialog.alert(data+'分类下还存在新闻线索,不可删除');

                            }else{

                           f_handle("this.newsclassid","newsissueclassify!delete.action");

                            }

                         });

         });

       }

Action:

/**

    * 删除时检查分类ID是否被使用

    *

    * @return

    */

   public String checkNewsclassidIsUse[d11] () {

      List<Long> unDelList = new ArrayList<Long>();

      if (ids != null) {

        String[] idArray = ids.split(",");

        List<Long> idList = new ArrayList<Long>();

        for (String tmp : idArray) {

           idList.add(StringValueUtils.getLong(tmp));

        }

        unDelList = manager.checkNewsclassidIsUse(idList);

      }

      if (unDelList.size() != 0) {

        String result = "";

        for (Long unDelId : unDelList) {

           result += unDelId + ",";

        }

        if (result.lastIndexOf(",") == result.length() - 1) {

           result = result.substring(0, result.length() - 1);

        }

         Struts2Utils.renderText(result);

      }

      return NONE;

   }

   @Override

   @SysLogAnnotation(moduleId = 7002, entityId = "newsclassid", paramId = "newsclassid")

   public String delete() throws Exception {

      JSONObject result = new JSONObject();

      try {

        if (ids != null) {

           String[] idArray = ids.split(",");

           List<Long> idList = new ArrayList<Long>();

           for (String tmp : idArray) {

              idList.add(StringValueUtils.getLong(tmp));

           }

           int flag = manager.deleteMultiNewsIssueClassify[d12] (idList);

           if (flag == 0) {

              result.put("flag", true);

           } else if (flag == 1) {

              result.put("flag", false);

              result.put("errormsg", "删除失败");

           }

        }

        IOUtils.pageWriter(Struts2Utils.getResponse(), result.toString());

      } catch (ServiceException e) {

        logger.error(e.getMessage(), e);

        result.put("flag", false);

        result.put("errormsg", "删除失败");

        IOUtils.pageWriter(Struts2Utils.getResponse(), result.toString());

      }

      return NONE;

   }

Service:

public List<Long> checkNewsclassidIsUse(List<Long> ids) {

      List<Long> unDelIdList=new ArrayList<Long>();

      for(Long id:ids){

        if(   newstipsdao.findBy("classid", id)[d13] .size()!=0){

           unDelIdList.add(id);

        }

       }   

      return unDelIdList;

   }

public int deleteMultiNewsIssueClassify(List<Long> ids) {

      int flag=1;

      for(Long id:ids){

        //初始化固定id不可删除

        if(id>6){

          dao.delete(id);

        flag=0;

        }

[d14]        }

      return flag;

   }

Dao:


 [d1]Confirm框,是有确定和删除按钮的对话框

 [d2]为什么要用f_handle?

还有this.customid如何获得的?

 [d3]url请求

 [d4]拼一个字符串

Eg:1,2,3,

 [d5]把传过来的ids一逗号分隔

 [d6]逐个遍历删除

 [d7]业务逻辑,没真正从数据库删,只是改变了他的状态。并且save一哈。

 [d8]继承的curd里面就有get()方法,表示根据id获得对应的实体类

 [d9]private List<CusInformation> customListR3=Lists.newArrayL

ist();

是客户标签实体类里面的一个集合,关联的客户实体类。

 [d10]如果返回的data不为空,即根据ids返回

 [d11]

先调用该方法,检查分类id是否被占用。

 [d12]没有关联则可以删除

 [d13]逻辑:

根据classid来查新闻表,

添加到list结合。如果list集合不为0,说明这下面有数据,不能删

 [d14]只能删除大于6的。

因为在表的设计中,0——6是固定初始化数据。

原文地址:https://www.cnblogs.com/pujiajia/p/3287204.html