• 新闻公布系统笔记二


    1.批量删除的实现:首先是前端的checkbox,实现点击最上面的复选框。会全选或者取消以下的复选框选择状态。

    通过jquery实现,涉及了一个属性选择器,用来选择结点或者设置属性。prop法。$("input[name='commentIds']").prop("checked",true);

    这一句是设置全部name属性是commentIds的结点checked属性为true。代码例如以下:

    $(document).ready(function(){
    		
    		$("#checkedAll").click(function(){
    			if($(this).prop("checked")==true){
    				$("input[name='commentIds']").prop("checked",true);
    			}else{
    				$("input[name='commentIds']").prop("checked",false);
    			}
    		});
    		
    	});
      1.2也许以下全部已经选择的记录
    var chk_value=[];
    $('input[name="commentIds"]:checked').each(function(){
    chk_value.push($(this).val());
    });

         须要把数组中统计的记录id用","切割。传给后台,然后批量删除。这样的方式就能够   var commentIds=chk_value.join(",");

         后台返回json格式的数据。显示删除了多少条记录,然后又一次请求一次servlet,获取更新后的记录。

    代码例如以下:使用ajax请求。eval把后台传的json转换成js对象。

    window.location.href又一次请求。${pageContext...}是jsp中的el表达式

    if(confirm("确认要删除这些评论吗?")){
    			$.post("comment?

    action=delete",{commentIds:commentIds}, function(result){ var result=eval('('+result+')'); if(result.success){ alert("成功删除"+result.delNums+"条数据"); window.location.href="${pageContext.request.contextPath}/comment?action=backList"; }else{ alert(result.errorMsg); } } ); }

    1.3  dao写法    返回删除记录数  用inkeyword批量删除,ids用,切割

    public int commentDelete(Connection con,String commentIds)throws Exception{
    		String sql="delete from t_comment where commentId in ("+commentIds+")";
    		PreparedStatement pstmt=con.prepareStatement(sql);
    		return pstmt.executeUpdate();
    	}

    2.带文件上传的form  通过 item.isFormField() 推断是普通的表单域   还是文件上传    假设是普通表单域 要通过item.getString("utf-8")

       获取真正的内容。

    FileItemFactory factory=new DiskFileItemFactory();
    ServletFileUpload upload=new ServletFileUpload(factory);

    List<FileItem> items=null;
    try {
    items=upload.parseRequest(request);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Iterator itr=items.iterator();
    News news=new News();
    while(itr.hasNext()){ } 

    上面是通过fileupload上传文件的标准写法  。

    获取普通表单内容和上传的图片:

                    //普通表单域处理

    if(item.isFormField()){
    String fieldName=item.getFieldName();
    if("newsId".equals(fieldName)){
    if(StringUtil.isNotEmpty(item.getString("utf-8"))){
    news.setNewsId(Integer.parseInt(item.getString("utf-8")));
    }
    }else if("title".equals(fieldName)){
    news.setTitle(item.getString("utf-8"));
    }
    }//当上传图片处理。而且上传图片名字不为空时才处理

    else if(!"".equals(item.getName())){
    try {
    String imageName=DateUtil.getCurrentDateStr();
    news.setImageName(imageName+"."+item.getName().split("\.")[1]);
    String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\.")[1];
    item.write(new File(filePath));
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    3.改动新闻时,类别列表自己主动相应当前新闻的类别    当newsType.newsTypeId==news.typeId 就把这个option默认选中

    注意当<option selected>tt</option>  这个option就选中了   完整代码例如以下:

    <select id="typeId" name="typeId">
    <option value="">请选择新闻类别</option>
    <c:forEach var="newsType" items="${newsTypeList }">
          <option value="${newsType.newsTypeId }" ${newsType.newsTypeId==news.typeId?'selected':''}>${newsType.typeName }</option>
    </c:forEach>

    </select>

     显示信息的单选框 和数据库中的信息相应  假设isHead==1  那么把这个checkbox选中

      <input type="checkbox" id="isHead" name="isHead" value="1" ${news.isHead==1?'checked':'' }>头条

  • 相关阅读:
    为你的 Github 博客加个 CMS -「内容管理」
    Alpha、Beta、RC、GA、LTS等软件各个版本号的含义
    WPF圆形进度条
    初试WPF代码迁移Core WPF
    dumpbin查看(Exe,Dll)是32位还是64位
    Windows Live Writer使用SyntaxHighlighter代码着色插件
    C#调用EnumDevice获取设备信息
    C#获取设备(Audio和Video)名称 简单整理
    C# Winform 换肤
    C# Winform模仿百度日历
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6789984.html
Copyright © 2020-2023  润新知