"返回"——查询结果后插入修改完成返回原查询结果页面
2017-07-19 12:37
323 查看
前言:在做查管凭证的过程中,需要查询结果后插入修改完成返回原查询结果页面。之前都是使用ajax调用的,但是继承过来的代码不是静态显示的,而是在js中动态拼接的,所以ajax“失效”了,因此......
1.插入:当从查询页面跳转到插入页面的时候再url路径中加入status标识符进行区别
2.同时在Session中进行保存:因为字符串长度太长cookie不够,且url路径长度也是有所限制的
3.跳转到add.jsp页面中进行status key值的获取
4.此时使用el标签进行判断,看是否显示返回按钮
5.点击返回按钮触发事件
6.从url路径上获取state参数,如果有证明是从add.jsp页面返回的
7.如果是从add.jsp页面跳转过来的则从session域中获取对应参数,调用searchData()方法,显示数据到页面
var ss = $("#voucherchecklist_urlSession").val();
if(ss!=null && ss !=""){
var arrSession=ss.split(":");
var startperiodArr = arrSession[0].split("=");
var endperiodArr = arrSession[1].split("=");
var kmcodenameArr = arrSession[2].split("=");
var summArr = arrSession[3].split("=");
var accountNameArr = arrSession[4].split("=");
var startNumArr = arrSession[5].split("=");
var endNumArr = arrSession[6].split("=");
var kmcodeArr = arrSession[7].split("=");
var accountIDArr = arrSession[8].split("=");
searchData(startperiodArr[1],endperiodArr[1],kmcodenameArr[1],summArr[1],accountNameArr[1],startNumArr[1],endNumArr[1],kmcodeArr[1],accountIDArr[1]);
}
}
此时在查询页面显示后点击编辑或插入跳转页面中就会显示返回按钮,同时点击返回按钮又返回到查询页面,而且里面的数据也是最新的。
小结:
其实最开始写的时候发现思路是有的,但是在做的过程中会有一些问题,一方面是cookie session的用途不清楚,另一方面是js jsp java三者之间代码的调用和使用。可能还是对于这些不够熟悉,需要在今后的工作中继续加油。
1.插入:当从查询页面跳转到插入页面的时候再url路径中加入status标识符进行区别
//插入功能 function insertBtn(date,pz_num){ var token = $("#token").val(); var AccountID = account_id; var linkurl = "../../finance/voucher/voucheradd.jsp?token="+token+'&cdate='+date+'&pz_num='+pz_num+"&AccountID="+account_id+'&action=insert'+"&state=1"; $.ajax({ url : 'voucherchecklist_saveSession.zm', type : "POST", dataType : 'json', data : { startperiod:_startperiod, endperiod:_endperiod, kmcodename: _kmcodename, summ:_summ, accountName:_accountName, startNum:_startNum, endNum:_endNum, kmcode: _kmcode, accountID:_accountID }, success : function(data) { if(data!=null){ window.location.href=linkurl+"&status=1"; } } }); }
2.同时在Session中进行保存:因为字符串长度太长cookie不够,且url路径长度也是有所限制的
//将查管list中的信息保存到Session中 public void saveSession(){ HttpSession session = request.getSession(); String _startperiod = request.getParameter("startperiod"); String _endperiod = request.getParameter("endperiod"); String _kmcodename = request.getParameter("kmcodename"); String _summ = request.getParameter("summ"); String _accountName = request.getParameter("accountName"); String _startNum = request.getParameter("startNum"); String _endNum = request.getParameter("endNum"); String _kmcode = request.getParameter("kmcode"); String _accountID = request.getParameter("accountID"); session.setAttribute("voucherchecklist_urlSession","startperiod=" + _startperiod + ":endperiod=" + _endperiod + ":kmcodename=" + _kmcodename + ":summ=" + _summ + ":accountName=" + _accountName + ":startNum=" + _startNum + ":endNum=" + _endNum + ":kmcode=" + _kmcode + ":accountID=" + _accountID); JSONObject resJson = new JSONObject(); resJson.put("name", "zhangsan"); this.returnAjax(resJson.toString()); }
3.跳转到add.jsp页面中进行status key值的获取
String status=request.getParameter("status"); request.setAttribute("status",status);
4.此时使用el标签进行判断,看是否显示返回按钮
<!-- 返回按钮选择性显示 --> <c:if test="${not empty status}"> <button class="btnBack btn-success" id="backup" onclick= "backBut()">返回</button> </c:if>
5.点击返回按钮触发事件
/* 返回按钮:返回路径拼接的url */ function backBut(){ if(status!=null){ window.location.href="../../finance/voucher/voucherchecklist.jsp?token="+token+"&AccountID="+$AccountID+"&state=1"; } };
6.从url路径上获取state参数,如果有证明是从add.jsp页面返回的
<% //从url路径红获取stae参数 String state = request.getParameter("state"); HttpSession mySession = request.getSession(); //如果state参数不为空,获取对应的session,分成数组 String voucherchecklist_urlSession = ""; if(state!=null && state.equals("1")){ voucherchecklist_urlSession =(String)mySession.getAttribute("voucherchecklist_urlSession"); } %> <input type="text" id="voucherchecklist_urlSession" value="<%=voucherchecklist_urlSession%>"/>
7.如果是从add.jsp页面跳转过来的则从session域中获取对应参数,调用searchData()方法,显示数据到页面
var ss = $("#voucherchecklist_urlSession").val();
if(ss!=null && ss !=""){
var arrSession=ss.split(":");
var startperiodArr = arrSession[0].split("=");
var endperiodArr = arrSession[1].split("=");
var kmcodenameArr = arrSession[2].split("=");
var summArr = arrSession[3].split("=");
var accountNameArr = arrSession[4].split("=");
var startNumArr = arrSession[5].split("=");
var endNumArr = arrSession[6].split("=");
var kmcodeArr = arrSession[7].split("=");
var accountIDArr = arrSession[8].split("=");
searchData(startperiodArr[1],endperiodArr[1],kmcodenameArr[1],summArr[1],accountNameArr[1],startNumArr[1],endNumArr[1],kmcodeArr[1],accountIDArr[1]);
}
}
此时在查询页面显示后点击编辑或插入跳转页面中就会显示返回按钮,同时点击返回按钮又返回到查询页面,而且里面的数据也是最新的。
小结:
其实最开始写的时候发现思路是有的,但是在做的过程中会有一些问题,一方面是cookie session的用途不清楚,另一方面是js jsp java三者之间代码的调用和使用。可能还是对于这些不够熟悉,需要在今后的工作中继续加油。
相关文章推荐
- 费劲心思完成了+ 点击查询之后实现页面不可操作,等待查询,几秒后返回结果页面
- 设置页面查询返回最大结果集
- 添加修改后返回刷新查询页面
- JavaScript页面的弹出以及查询结果的返回
- 用excel, notepad++ 快速整理sql字段名,并快速完成将某个存储过程的查询结果插入到某张表
- JDBC查询数据返回给jsp页面(注解方式完成)
- php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数据,写入页面不同的id号中
- 页面条件查询,返回时显示乱码,查不出结果
- 如何从页面输入SQL查询条件得到后台结果返回前台页面
- 提交一个from的时候,struts2处理完返回结果打开一个新页面,用target="blank"
- 分析输入url到页面返回的过程(或者查询返回过程)
- jsp页面上查询结果导入到EXCEL表里
- linux系统中通过页面插入的数据出现乱码,修改mysql数据库编码
- mysql 返回查询结果,返回out返回值,多表联合查询的分页存储过程
- Hive查询结果批量插入分区
- mysql 常用 插入,修改,删除,查询语句
- 使用mysql_fetch_object()以对象的形式返回查询结果
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- 织梦dedecms — advancedsearch精确查询,根据自定义字段查询,查询结果页面无法调用自定义字段,头部,尾部,解决办法
- Spring 使用配置完成从前台页面输入到查询数据库的例子