遇到的问题----js获取java的数组
来源:互联网 发布:北京赛车pk10数据分析 编辑:程序博客网 时间:2024/05/22 03:15
我们都知道 jsp页面中获取java后端的数组可以有很多方法。
比如JSP的表达式<%= %>或者EL表达式${}。
或者C标签,S标签等。
可参考:
JSP标准标签库-c标签等
s标签显示后台数据的基本用法以及iterator遍历用法
但js中是不能直接使用java后端传值的数组的。
有两个解决方法:
1.ajax请求返回数组,这种方式返回的数组是直接能使用的。这里就不详说了。
2.把java的数组转换成 js数组。 本章主要讲解这种方式。
JS中遍历一个EL表达式的集合为空原因
el表达式生效的时候javascript代码还全都是文本 等javascript生效的时候早就没了el表达式了。
js是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以你不能用js来改变已经执行的el表达式的值
但是却可以用el来给js初始化传值。
也就是不能再在js的逻辑代码中再去获取EL表达式,只能在js的逻辑代码中把EL表达式的输出 当成文本。
如果JS脚本不是在JSP页面里而是在单独的JS文件里,这时用EL初始传值是不起作用的,但你可以通过window.onload()来得到EL的值再传送给JS文件里的方法进行变量初始化
js获取java数组的长度
所以我们发现在jsp中生效的 ${strs.length}是不生效的。
只能通过fn函数
页面引入<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
${fn:length(strs)} 可在js中获取java数组的长度。
把java的数组转换成 js数组
把java数组转换成js数组的原理是创建一个js数组然后把java数组中的值取出放进去。
我们现在有一个costList数组,格式是String[]
现在新建一个 list1的js数组Array 来获取 costList数组的值。
有如下几种方法:
使用c标签EL表达式在创建js数组时拼接
var list1 = new Array(
5.0,3.0,4.0,5.0,4.0,4.0,5.0,4.0,5.0
)
构造出这样的js代码就行。
function initSit(){var list1 = new Array(<c:forEach items="${costList}" begin="0" end="0" var="cost">${cost}</c:forEach><c:forEach items="${costList}" begin="1" var="cost">,${cost}</c:forEach>)//这里是属于js的部分var i=0;for(;i<list1.length ;i++){alert(list1[i]);}}initSit();
使用java脚本在创建js数组时拼接
function initSit(){var list1 = new Array(<% String[] costList = (String[])request.getAttribute("costList");//使用java脚本来输出数字//数组是costList[0],List则是costList.get(0)out.print(costList[0]);//这里这么写很重要...只有这样才能个js的 Array对象正确赋值for(int i=1; i<costList.length; i++){out.print(",");out.print(costList[i]);}//java脚本部分结束%>)//这里是属于js的部分var i=0;for(;i<list1.length ;i++){alert(list1[i]);}}initSit();
先创建js数组再java脚本循环赋值
function initSit() {<% String[] str = (String[])request.getAttribute("costList"); %>var list1= new Array(<%=str.length)%>);<% for(int i=0;i<str.length;i++) { %>list1= [<%=i%>] =<%=str[i]%>;<%}%> var i=0; for(;i<list1.length ;i++) { alert(list1[i]); }}initSit();
- 遇到的问题----js获取java的数组
- js获取高度遇到的问题
- Java数组练习中遇到的问题
- 遇到的问题,数组
- 关于js的事件获取遇到的问题
- js遇到的问题
- js遇到的问题
- JS数组排序-面试经常遇到的问题
- VS 数组遇到的问题
- 初学Java遇到的一个数组小问题
- js从数组中获取元素的问题
- 使用JS遇到的问题
- js遇到过的问题
- JS中遇到的问题
- js 开发遇到的问题
- iscroll.js遇到的问题
- js混淆遇到的问题
- 遇到的问题java
- static和extern与变量
- Android 内存管理 &Memory Leak & OOM 分析
- PHP反射ReflectionClass、ReflectionMethod
- C 语言学习 —— 《明解C语言》
- 在JAVA中如何连接SQL Server数据库
- 遇到的问题----js获取java的数组
- ceph安装命令罗列
- HighCharts中PieChart的实现
- mark
- socket的发送与接收缓冲区
- [jQuery] Introduction
- 1.Two Sum
- [mysql] 性能优化20条建议
- CSS中背景颜色的渐变