我有一个bean,想要遍历这些值并将其存储在一个数组中。
我的表单bean名称是关键字,要访问的元素是keywordList,所以在我的JS中提醒(“$ {keywords.keywordList}”);
我得到[com.test.bean.Keyword@10,com.test.bean.Keyword @ f,com.test.bean.Keyword @ e],但是我想要这些值并将它们分配给var,如何我可以这样做吗?
答案 0 :(得分:1)
javascript和java是两种不同的语言,你不能假设你在java中传递keywords.keywordList
并在javascript中获取相应的对象,你需要在java中迭代关键字列表并手动创建相应的javascript对象。
更新:某些伪代码
out.print("var keywordsInJS = []")
for (String keyword : keywordList) {
out.print("var keyword = '" + keyword + "';");
out.print("keywordsInJS.push(keyword);");
}
// now you can use keywordsInJS in js.
答案 1 :(得分:1)
以下是我解决问题的方法
<script>
var i = 0;
var collection = new Array();
</script>
由于我使用的是逻辑:迭代器并在表格中显示值,我添加了
<script>
collection[i++] = "${keyword.name}";
</script>
现在当我提醒收集时,所有单词都在数组中。这正是我需要的。
答案 2 :(得分:1)
这是我在JSP页面上解决这个问题所做的工作
< %@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script type="text/javascript">
var keyWordsArray=new Array();
var rowCounter=0;
<c:forEach items="${keywords.keywordList}" var="keyWords">
var fieldObj=new Object();
fieldObj.value='<c:out value="${keyWords}"/>'
keyWordsArray[rowCounter]=fieldObj;
rowCounter++;
</c:forEach>
&LT; /脚本&GT;
&LT; /代码&GT;
现在您可以在Javascript中访问keWordArray。
答案 3 :(得分:-1)
根据我的经验,JS和Java不能很好地互动...
我建议您使用HTML作为中间词来进行交互。例如,在html中以不可见文本显示列表内容(使用迭代器和索引属性,每个文本可以有不同的名称),然后就可以在JS中获取它们。
你还应该保持列表的长度,这样当你在JS中进行迭代时,你知道何时停止。
我知道这远不是一个完美的解决方案,远远不是一件好事。但我知道没有更好的办法:(
希望有一个,所以我也可以使用它:)