在项目中遇得使用get请求页面是,url有字节大小的限制,无奈只能采用post的方式进行参数的传值并跳转页面。
实现思路:
使用form表单进行提高,并在后台处理一下参数,进行下一个页面的跳转。
/*
*功能: 模拟form表单的提交
*参数: url 跳转地址 params 参数
*/
function Post(url, params) {
var form = $("<form method='post'></form>");
form.attr({"action":url});
for (pa in params) {
var input = $("<input type='hidden'>");
input.attr({"name":pa});
input.val(params[pa]);
form.append(input);
}
$("html").append(form);
form.submit();
}
//参数赋值:
var url = "${basePath}xueshengxx.queryList.do";//跳转后台的写法
var url = "${basePath}xueshengxx/queryList.jsp";//不跳转后台,直接跳转页面
var params = {name:name,xingbie:xingbei};
//调用post请求
Post(url,params);
//java 后台代码
@RequestMapping(value = "tamsbbzb.dwsb.sfxyList.do", method = RequestMethod.POST)
public String gotosfxyList(HttpServletRequest request) throws JSONException {
HttpSession session = request.getSession();
Map<String,String[]> map= request.getParameterMap();
Map<String,Object> parameterMap = new HashMap<String,Object>();
for(String str:map.keySet()){
parameterMap.put(str.toLowerCase(), map.get(str)[0].trim());
}
request.setAttribute("params", parameterMap );
return "forward:index/xwzx.jsp";
}
//下一个页面,进行取值(对应post方法调转后台,把值存到request中的写法)
var post_name = '${datas.name}';
var post_xingbie = '${datas.xingbie}';
//下一个页面,进行取值(对应post方法直接跳转下一个页面,值存到request中的写法)
var post_name = '<%=request.getParameter("name")%>';
var post_xingbie = '<%=request.getParameter("xingbie")%>';
这是自己开发中遇到的问题,可以给大家提供下参考