JSP页面中<% %>内的java对象如何才能拿到js中用?

cciikk2 技术员 2015-07-13 01:27:22
比如如下,从request中拿到一些对象,我想在jsp页面的JS代码中使用这样的对象 o1,m1这类

该如何实现呢? 如果仅仅一个值我知道用<%=str %>,但是这样是对象的话怎么实现呢?


<%
Object o1 = request.getAttribute("XXX");
Map m1 = request.getAttribute("YYY");


%>


<script type="text/javascript">


</script>


...全文
15488 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zgx、居仙 2017-09-04
今天碰到同样的问题,貌似解决方法只有json
回复
LL继续前进 2016-01-17
用list获取对应的实体类,然后用request.setAttribute("key","value");的方式,request.getRequestDispatcher("XXX.jsp").forward(request, response);给jsp后,在jsp页面中用EL表达式循环获取 比如: <c:forEach items="${List}" var="list"> <tr align="center"> <td>${list.idx }</td> <td>${list.name}</td> </tr> </c:forEach>
回复
例子我也不会写出个完整的,这个是input标签的onclick属性: onclick="flag(<%=session.getAttribute("flag")%>)" ps:我的flag是数字,所以直接可以用,如果是字符串要用单引号将<%%>包起来。至于对象没试过。 但是这个有个缺点就是右击查看源代码可以看到里面的值(比如我存2) 从源代码就是 flag(2)
回复
qq_33763223 2016-01-16
想调用对象的话,要必须导入该对象所在java文件的包. 举个列吧:我想使用自己写的User对象,这个对象所在的java文件为User.java 这个文件在com.domain包下面,那么我就必须导入这个包才能使用User对象 <%@ page import="com.domain.*"%> 这样就能使用了<% User admin = (User) session.getAttribute("admin");%>
回复
insistant 2016-01-08
用el表达式吧,${XXX}
回复
楼上说的转化为json是可以的,在js中直接取数就可以了, eg :var r=data; r.value就是存在map中的key为value的值了, 若是很多map,可以将map,add到list里,再转化为json,前台js中可以以 r[ i ] .value的格式取出对应的值。。
回复
jiyang_1 2016-01-06
楼主是怎么解决的呢?我也遇到这种问题
回复
jiayamei_ 2015-07-17
<% Object o1 = request.getAttribute("XXX"); Map m1 = request.getAttribute("YYY"); String m1Json = Java2Json.map2json(m1); %> <script type="text/javascript"> var m1JSON = '<%=m1Json %>'; var m1Obj = $.parseJSON(m1JSON); </script>
回复
csdn_joke 2015-07-16
jsp表达式
回复
寻尘ki 2015-07-16
主页面上定义,然后o1就是你需要的了 <script> var o1 = ‘<%=request.getAttribute("XXX")%>’; var m1=‘${YYY}’;//貌似也可以取到 </script>
回复
小雷同学 2015-07-15
jsp页面定义一个全局js对象,然后在js文件中调用
回复
jollroy 2015-07-15
引用 4 楼 cciikk2 的回复:
你理解错了我的意思...
楼上有人说了。 大概是这样 你后台把一个对象拼接成 jsonarray 然后request.setAttribute 把jsonarray对象放进去 前端页面取好值之后就用JS循环取出对象的每一个属性了
回复
知心五味子 2015-07-15
明确一点,js的执行是在你网页上的JAVA代码执行之后
回复
HMC150330 2015-07-15
存request域,js中用el表达式取
回复
qqw6789567 2015-07-14
刚看到啊,你那是往JS里放啊,没有这么取得,
引用 9 楼 gezhengyun 的回复:
lz直接用ajax请求后台,在js里获取json数据吧
应该用这个,JSP中用代码获取到的值根本就不能放入JS里,不然你JS根本不走,
回复
悲鸣秋 2015-07-13
不能用EL 表达式么 ?
回复
乱世丶桃花 2015-07-13
lz直接用ajax请求后台,在js里获取json数据吧
回复
lxbccsu 2015-07-13
引用 2 楼 cciikk2 的回复:
[quote=引用 1 楼 qqw6789567 的回复:] 大体思路是你把它拆分成值在用, 比如你得到一个map,你可以遍历之后取出需要的值,再。。。。你懂得! 例如:value=aMap.get("default_value").toString(); <%=value%>
这招我想到过...但是有的对象里30-50个值呢...上面拆分一次,下面赋值一次,多出来近百行代码...[/quote] Java 与 JS 之间没有直接转换的机制,不可能直接把一个Map给JS,然后在JS中操作Java对象; 你可以先把Map转为JSON对象,然后在JS中获取JSON对象,这样能达到你要的效果;
回复
qqw6789567 2015-07-13
不过你说的很多值也是值得思考的,但是现在我们用的其实很少放那么多值,要是放了就遍历用的,全显示用的,
回复
qqw6789567 2015-07-13
引用 2 楼 cciikk2 的回复:
[quote=引用 1 楼 qqw6789567 的回复:] 大体思路是你把它拆分成值在用, 比如你得到一个map,你可以遍历之后取出需要的值,再。。。。你懂得! 例如:value=aMap.get("default_value").toString(); <%=value%>
这招我想到过...但是有的对象里30-50个值呢...上面拆分一次,下面赋值一次,多出来近百行代码...[/quote] 但是你要是要单个的话取一个,都要就遍历啊,不行再来个分页,全显示
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-07-13 01:27
社区公告
暂无公告