后台发送的List<UserPO> 在jsp的js代码中如何接收使用?

jsp页面这样可以获取到。<%List<UserPO>po=(List<UserPO>)request.getAttribute("CGDBJ");%>但是我js中怎么取... jsp页面这样可以获取到。
<%
List<UserPO> po=(List<UserPO>)request.getAttribute("CGDBJ");
%>
但是我js中怎么取出来其中的值呢?
我现在用的方法是,利用隐藏域
<input type="hidden" id="CGDDetailList" name="CGDDetailList" value="<%=po%>"/>
我在js中 ,alert($('#CGDDetailList').val());出来的是地址,
现在我要在js中遍历集合,取出具体的属性,如user.name user.age 这样的。怎么写?
在线等答复,
展开
 我来答
历盆郁7
推荐于2018-05-06 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:945万
展开全部

kevintop3的回答很不错,是基于原始的jsp的写法,不知道符合你的要求么?

我说下我的思路:

  1. 选择C标签(你项目框架不允许,就不建议了)

  2. 后台必须传递List<UserPO>么?在jsp要做复杂的逻辑么?如果是这样,建议在后台处理好,然后直接传递个如json或者字符串,用js接受,然后再js里处理,

    这样的好处是:

    a.降低前台jsp的压力

    b.逻辑尽量放到后台,避免前台过于庞大

    c.避免jsp中出现太多的java脚本(说大了,就是 易阅读性,可维护性,模型、视图分离之类)

以上供你参考,回答晚了,你已经采纳过了

kevintop3
推荐于2016-04-19 · TA获得超过1.5万个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:534万
展开全部

方法有很多。 最简单的,你可以使用JSTL标签。示例:


<script>
<c:forEach var="userPO" items="${po} "> 
alert("${userPO.name}"); 
alert("${userPO.age}"); 
</c:forEach> 
</script>
追问
c标签在js里面用,报错了,有别的方法吗?我们公司用的是自己的框架,很多东西不能用
追答
<script>
<%    
       List<UserPO> po=(List<UserPO>)request.getAttribute("CGDBJ");    
        if(po!=null){    
           Iterator<UserPO> iter=po.iterator();
           UserPO userPO = null; 
            while(iter.hasNext()){   
                userPO =iter.next(); 
%>
                 alert(<%=userPO.name%>);   
<%            
       }    
       }    
%>
<script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dllgdx_2000
2013-10-12 · TA获得超过922个赞
知道小有建树答主
回答量:1202
采纳率:0%
帮助的人:751万
展开全部
你用js接值的目的是什么呢?
排序?还是其他逻辑?
如果是单纯赋值显示的话
和java取值一样
不用js
<%
List<UserPO> po=(List<UserPO>)request.getAttribute("CGDBJ");
for (XXX) {
UserPO userPO = (UserPO)po.get(i);
String name = userPO.getName();
}
%>
赋值的地方就是<%=name%>就可以了
另外var变量没办法接一个list套bean的集合
你也是只能取出来一个一个赋个var变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菡萏香销prince
2013-10-12 · 超过19用户采纳过TA的回答
知道答主
回答量:48
采纳率:100%
帮助的人:27.9万
展开全部
用jstl的c标签确实简单 但我觉得你可能是初学 告诉你<%%>的写法

<%
List<UserPO> po=(List<UserPO>)request.getAttribute("CGDBJ");

for(int i=0;i<po.size();i++){
UserPO e = po.get(i);
%>
<tr class="row<%=(i%2+1) %>">
<td>
<%=i+1 %>
</td>
<td>
<%=e.getName() %>
</td>
<td>
<%=e.getSalary() %>
</td>
<td>
<%=e.getAge() %>
</td>
<td>
<a href="del.do?id=<%=e.getId() %>" onclick="return confirm('确定删除吗');">删除</a> <a href="load.do?id=<%=e.getId() %>">修改</a>
</td>
</tr>
<%
}
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友edc743b
2013-10-12
知道答主
回答量:25
采纳率:0%
帮助的人:13.2万
展开全部
jstl 在js中直接var po = "${CGDBJ}" 貌似就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式