后台发送的List<UserPO> 在jsp的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 这样的。怎么写?
在线等答复,

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

我说下我的思路:

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

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

    这样的好处是:

    a.降低前台jsp的压力

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-19

方法有很多。 最简单的,你可以使用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>

本回答被提问者采纳
第2个回答  2013-10-12
你用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变量
第3个回答  2013-10-12
用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>
<%
}
%>
第4个回答  2013-10-12
jstl 在js中直接var po = "${CGDBJ}" 貌似就可以了