自制小功能的一些总结

来源:互联网 发布:网络延迟检测 编辑:程序博客网 时间:2024/05/01 05:13

增加截图宽高的管理功能,自由添加删除不同的宽高组合。目前所有的宽高组合都配置在服务器某个特定的路径下,如/geral/actix/huanhuan.txt,是.txt文件的形式,每个宽高组合占一行。

如下形式:

400X400

500X500

在页面上的呈现效果如下:

首先,读取该文件数据并在页面上展示出来的后台方法为:

FileInputStream inFile=new FileInputStream(ConfigReader.getInstance().getScrurepath());BufferedReader reader=new BufferedReader(new InputStreamReader(inFile, "utf-8"));List<ScreenshotForm> result=new ArrayList<ScreenshotForm>();String str=null;int i=0;while((str=reader.readLine())!=null){i++;ScreenshotForm screenshotForm = new ScreenshotForm();screenshotForm.setScreenshotid(i);if(str.indexOf("X") != -1){String[] wh = str.split("X");if(wh != null && wh.length > 0){screenshotForm.setWidth(wh[0]);screenshotForm.setHeight(wh[1]);}}result.add(screenshotForm);}inFile.close();reader.close();
其对应的前端JSP页面为:

var table;$(function(){table = $("#table_data_pannel").jqTable({rowkey: "screenshotid",//pager: $("#pager"),buttonPanel:$("#div_function_panel"),//loadComplete:onLoadComplete,loadurl: '<%=request.getContextPath()%>/onfigurationData.do'});$("#b_query").click(function() {table.loadData('query');    }); table.loadData('init'); $('#div_function_panel').checkboxRegister(function(datas){$("#btn_update").buttonDisable();$("#btn_delete").buttonDisable();$("#btn_add").buttonEnable();if(datas.length < 1){$("#btn_update").buttonDisable();$("#btn_delete").buttonDisable();}if(datas.length > 1){$("#btn_delete").buttonEnable();}if(datas.length == 1){$("#btn_update").buttonEnable();$("#btn_delete").buttonEnable();if(datas[0].status == "0"){$("#btn_update").buttonDisable();}}});})
增加一组参数的后台方法:

FileInputStream inFile=new FileInputStream(SMPConfigReader.getInstance().getScreenshotparameterconfigurepath());BufferedReader reader=new BufferedReader(new InputStreamReader(inFile, "utf-8"));List<String> result=new ArrayList<String>();String str=null;while((str=reader.readLine())!=null){if(str.indexOf("X") != -1){result.add(str);}}inFile.close();reader.close();ScreenshotForm actionForm=(ScreenshotForm) form;ScreenshotForm screenshotForm=new ScreenshotForm();if(actionForm!=null){String screenshotString=new String(actionForm.getWidth()+"X"+actionForm.getHeight());screenshotForm.setScreenshotid(actionForm.getScreenshotid());screenshotForm.setWidth(actionForm.getWidth());screenshotForm.setHeight(actionForm.getHeight());BufferedWriter writer=new BufferedWriter(new FileWriter(SMPConfigReader.getInstance().getScreenshotparameterconfigurepath()));for(String temp:result){writer.write(temp);writer.newLine();}writer.write(screenshotString);writer.newLine();writer.close();return JasonReturn(response, "0", null);}return null;
在更新的时候,前端通过这种方法将之前页面的参数传给更新页面:

function doUpdate() {var checkboxes = $("input:checked[name=screenshotid]");var data = table.getCheckedRowData(checkboxes[0].value);var params = {};params.screenshotid=data[0].screenshotid;params.width=data[0].width;params.height=data[0].height;var url = "<%=request.getContextPath()%>/configure/UpdateScreenshotParameter.do?info="+JSON.stringify(params);$.webutil.showDialog({url: url,callback :updateCallback,showType :"coverage",args:""});function updateCallback(obj){if(obj.operation == btn.ok)table.loadData();}}

然后后台通过这种方式接收:

ScreenshotForm screenshotForm = (ScreenshotForm) JSONObject.toBean(JSONObject.fromObject(request.getParameter("info")), ScreenshotForm.class);request.setAttribute("screenshotForm", screenshotForm);

更新页面通过这种方式接收:

<table align="center" id="table_data_pannel"><tr><td align="right"><bean:message key="Configure.menu.wide"/><bean:message key="Colon" bundle="common"/></td><td align="left"><input type="text" class="text fv-trim" name="width" size="20" maxlength="32" value='<csc:newwrite name="screenshotForm" property="width"/>'></td><%-- <td align="right"><bean:message key="CopyRight.CPStatus" bundle="copyright"/><bean:message key="Colon" bundle="common"/></td> --%><td align="right"><bean:message key="Comfigure.menu.high"/><bean:message key="Colon" bundle="common"/></td><td align="left"><input type="text" class="text fv-trim" name="height" size="20" maxlength="32" value='<csc:newwrite name="screenshotForm" property="height"/>'/></td></tr></table>
至于删除功能,其对应的前端删除方法为:

function doDelete() {var checkboxes = $("input:checked[name=screenshotid]");var data = table.getCheckedRowData();var arr = [];for(var i=0; i<data.length; i++){arr.push(data[i].screenshotid);}$.webutil.confirm("<bean:message key='common.msg.delete.confirm' bundle='common'/>", function(v)    {    if ( v )    {    var params = {};    params.idStr = table.checkedRowID.join(",");var url = '<%=request.getContextPath()%>/configure/DeleteScreenshotParameterData.do';$.ajaxSubmit(url,false , params,function(result){if(result.code == 0){    table.loadData();    clearControl();    if(checkboxes.length == 1)    $.webutil.bubbleMessage("<bean:message key='bubble.message.delete.title' bundle='common'/>", "<bean:message key='bubble.message.delete.title' bundle='common'/>");    else    $.webutil.bubbleMessage("<bean:message key='bubble.message.delete.title' bundle='common'/>", "<bean:message key='bubble.message.delete.title' bundle='common'/>" , checkboxes.length);   }   else    {    table.loadData();    $.webutil.alert("<bean:message key='ErrorCode' bundle='errormessage'/>"+result.code+"<br/>"+result.message);   }})}});}
其对应的后台方法为:

String idStr = request.getParameter("idStr");String[] ids = idStr.split(",");FileInputStream inFile=new FileInputStream(SMPConfigReader.getInstance().getScreenshotparameterconfigurepath());BufferedReader reader=new BufferedReader(new InputStreamReader(inFile, "utf-8"));List<String> result=new ArrayList<String>();String str=null;while((str=reader.readLine())!=null){if(str.indexOf("X") != -1){result.add(str);}}inFile.close();reader.close();List<String> newRes =new ArrayList<String>();for(int i=0; i<result.size(); i++){boolean flag = true;for(String s : ids){if((i+1) == Integer.valueOf(s)){flag = false;break;}}if(flag){newRes.add(result.get(i));}}BufferedWriter writer=new BufferedWriter(new FileWriter(SMPConfigReader.getInstance().getScreenshotparameterconfigurepath()));for(String temp:newRes){writer.write(temp);writer.newLine();}writer.close();JasonReturn(response, "0", "");
其实这个Form没有唯一标识,然后人为加了一个唯一标识,作为识别的依据。







原创粉丝点击