增加截图宽高的管理功能,自由添加删除不同的宽高组合。目前所有的宽高组合都配置在服务器某个特定的路径下,如/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没有唯一标识,然后人为加了一个唯一标识,作为识别的依据。