关于$().load()方法中参数传递的问题。。

qq_28671991 2018-05-06 04:44:03
开发中遇到了难题,A页面和B页面进行数据交互,A页面把对象传递给B页面,并且A页面会异步刷新出B页面的内容。所以用到了$.load方法。B页面通过使用el表达式获取A页面的传递的参数,只能获取普通的参数,对于一些集合或者数组无法获取。希望有大神帮忙看看。
A页面js:


B页面获取参数:


想知道到底如何能遍历到group的集合元素呢,很费解网上也找不到什么方法。谢谢了
可以正常获取myParam的name属性,但是group获取不到。


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<button onclick="showDiv();">点击我</button>
<div id="showDiv"></div>
</body>
<script type="text/javascript" src="./js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function showDiv() {
var myParam = {
name: 'aaa',
group:[
{
myName:'a',
age:'16'
},
{
myName:'b',
age:'162'
}
]
};

$('#showDiv').load('./MyJsp.jsp', myParam,function(result) {
$('#showDiv').html(result);
});
}
</script>
</html>



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>
<body>
<p>${param.name}</p>
<c:forEach items='${param.group}' var='group'>
<p>${group.myName}</p>
</c:forEach>
</body>
</html>

...全文
2133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
superpng 2019-08-20
  • 打赏
  • 举报
回复
你可以定义一个对象,把参数传进去,然后用load方法,把对象传进去,前面url就是你请求的

类似这样:

var query = {"curPage":curPage,"brand":brand,"model":model,"name":name,"groupname":groupname};
//console.log(query);
$('#loadteammember').load("<%=request.getContextPath() %>/memberManage/teammember",query); // ajax加载页面
懒笑翻 2018-05-07
  • 打赏
  • 举报
回复
qq_28671991 2018-05-06
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
前端往服务器提交时每个参数都只能是字符串,不能是数组和对象。 要传数组和对象时要转换成json格式的字符串 myParam.group = JSON.stringify(myParam.group); 服务器接收后也是要用相应的函数将json格式的字符串转换成服务器语言中的数组和对象
道理明白了,但是有没有办法在B页面中用JS获取传递过来的参数呢?如果通过EL表达式赋值到某个标签,再通过JS获取标签的值,发现传递过来的参数会多一个=号。。 我希望能在el表达式直接获取到JSON格式的数据,这样我在操作遍历的时候就简洁很多了。
qq_28671991 2018-05-06
  • 打赏
  • 举报
回复
天际的海浪 2018-05-06
  • 打赏
  • 举报
回复
前端往服务器提交时每个参数都只能是字符串,不能是数组和对象。 要传数组和对象时要转换成json格式的字符串 myParam.group = JSON.stringify(myParam.group); 服务器接收后也是要用相应的函数将json格式的字符串转换成服务器语言中的数组和对象
qq_28671991 2018-05-06
  • 打赏
  • 举报
回复
顶顶顶。求帮助
qq_28671991 2018-05-06
  • 打赏
  • 举报
回复
有没有好心人过来帮帮忙,谢谢了

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧