javascript 如何获取后台的对象???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 如何获取后台的对象???相关的知识,希望对你有一定的参考价值。

后台有一个List<string>对象 如何在页面加载的时候赋值给 javascript 中的var 对象

在后台将对象转换成json字符串
如,一个student对象有name,age json: \'"name":"godelegant","age":12\' 然后在前台将此字符串给javascript变量。
var objStr = \'"name":"godelegant","age":12\';
alert(objStr);
var student = eval(objStr);
alert(student); //[object]
alert(student.name); //godelegant
alert(student.age); //12
这样就得到了一个JS的对象.
参考技术A var abc='<%=XXXX%>';追问

请问那有该如何取值呢。比如我想查找某个字符在List的中的索引。var abc怎么取???

本回答被提问者采纳
参考技术B 在后台中servlet中 List<string> 的对象假设为A
那么在servlet中: request.setAttribute("A", A);
前台jsp页面中 List<string> A = (A)request.getAttribute("A")
参考技术C 将对象定义为 protected 然后输出到页面上。
protected List<string> a = new List<string>();
页面赋值 var b = '<%=a%>';
参考技术D 给你个思路,后台当List<string>数据执行完毕的时候,调用前台JS方法进行AJAX操作。
或者
例如:List<string> 值不为空后,把List<string>循环成为string格式,例:string str="1,2,3,4,5,6" 执行
ClientScript.RegisterStartupScript(GetType(), "showDetail", "showDetail(\"" + sb.ToString() + "\");", true);
现在就转到前台代码了
第5个回答  2011-09-26 通过Response.Write() 第6个回答  2011-09-26 1楼正解

javascript 如何通过el表达式获取后台传来的数组

javascript中:
alert($size);//显示3
for ( var x = 0; x < $size; x++)

alert('$reportName[x]');//显示为空


alert('$reportName[0]);//显示具体值

为什么用具体下标就能获取,用for循环就不行,
var reportName = '$reportName[x]';也不行

将数组放到一个string里,传到javascript再拆分是可行,但是觉得麻烦,有其他办法吗?
修正:var reportName = '$reportName';也不行

原来我走了弯路,直接用jstl就行
<c:forEach items='$list' var='list'>
<option value="$list.reportID">$list.reportName</option>
</c:forEach>

el毕竟是服务器端的脚本,怎么可能和客户端脚本混用呢?
执行过程是服务器先解析了服务器端脚本后,结果返回到客户端,由浏览器执行返回的结果,这个两个步骤,不能混合搭配使用的。
我觉得有两种做法:
一种是你说的,用字符串,然后客户端拆分再操作。
另一种是用el循环,输出的东西是客户端脚本的数组操作
var aaa=new Array();
<c:forEach items="$reportName" var="mm">
aaa.push("$mm");
</foreach>

然后操作aaa
两种方法大同小异
参考技术A el表达式是在服务器端处理的,javascript是在浏览器里运行,
所以代码中:
for ( var x = 0; x < $size; x++)

alert('$reportName[x]');

的el表达式处理时,x是没有值的,所以到前端运行alert时就是空了
参考技术B 页面一般都是用C标签直接处理LIST了,
你这种方式没试过,建议你把单引号去掉再试试
alert($reportName[x]);//追问

javascript里面用el表达式必须用单引或双引括起来,否则会报错

参考技术C 其实用string 拆分也不麻烦,挺好弄的

以上是关于javascript 如何获取后台的对象???的主要内容,如果未能解决你的问题,请参考以下文章

javascript 如何通过el表达式获取后台传来的数组

java 我通过后台传递一个json数组到前台,如何从javascript中 获取到

javascript中如何传个数组到后台String [ ] 接收?

ASP.NET WebForm中JavaScript修改了页面上Label的值,如何在后台代码中获取

如何在后台队列中获取对象的领域结果,然后在主线程上使用它

Django Admin Cookbook-38如何获取特定对象的Django Admin后台URL