- 需求:很多情况下,我们会在当前界面A选择数据,然后点击按钮跳转至新的页面B,在新的页面中B需要根据前一个界面A中选择的数据,而且我们发送请求通常是通过JS代码。
- 分析:
- A界面跳转至B界面,如何将数据传过去呢?
- A界面选择的数据已传至B界面,怎么在JS中获取到呢?
-
解决方法:
-
首先A界面中选择的数据在点击按钮时,将参数传至后台(这是点击按钮后,通过conntroller跳转页面的方法):
@RequestMapping("toView") public String toView(){ String param = request.getParameter("param"); request.setAttribute("param", param); return "page/xxxxx"; }
后续跟进的问题:了解页面的分发机制,即controller与jsp等页面的分发原理;
-
在B界面中获取后台返回的参数信息(例子为jsp页面):
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <% String param = (String)request.getAttribute("param"); %> <script type="text/javascript" src="/js/xxxx.js"></script> </head> <body> <input type="hidden" id="idTest" value="<%=param%>"> </body>
后续跟进的问题:了解jsp内置对象的作用域;
-
在JS页面中获取参数(即在xxxx.js中获取):
// 在函数外获取到的为nudifined的 var id = $("#idTest").val(); $(document).ready(function (){ // 在函数中是可以获取到的 id = $("#idTest").val(); alert(id); }
后续跟进的问题:了解jsp等模板页面引入js后的处理原理;
写在结束:条条道路通罗马,分享以供参考。