为了把数据库中所存的由执行命令产生的回显,显示到页面上,对取出的库中的数据进行操作。
主要显示问题:
一、在库中的那些有回车和空格等特殊符号的,不能正常显示在页面上,需要对这些符号进行replace替换。
eg: public void showOutput() {
CommandDao cmdDao = (CommandDao) SpringUtil.getBean("commandDao");
String str = cmdDao.getOutput(commandId);
StringBuilder authResponse = new StringBuilder();//响应文本的头
authResponse.append("{stateInfo:\"");
authResponse.append("ddddddd\ndddddd");
authResponse.append("\"}");
String str1 = str.replaceAll("\n","<br/>");
str1 = str1.replaceAll("\t", " ");
str1 = str1.replaceAll(" "," ");
str1 = str1.replaceAll("&","@@@");
ajaxResponse(str1);
}
二、以参数形式传的话,可能会出现url长度过长,导致页面无显示或者显示不理想的结果。有两个解决方法:
1)、由于本项目使用了iframe页面 技术,可以用window.top方法把想传的参数先存储在top页面,然后,
在弹出页面的时候去top页面取值,然后清空top页面的值。
2)、不以参数的形式进行最终数据的传导,可以,在页面点击事件触发的时候,只传一个唯一性id,在js
中接收后,弹出页面,在弹出的页面上调用ajax方法,进行对后台的请求访问。
eg: 1:
2:
3:
注:执行第三步时,还需要将之前转换的特殊字符,在转换成页面可以读取的;如:在之前操作中转换的‘&’字符,要以:“要转换的字符串”.replace(/@@@/g,"&")的形式转换回来。