我有一个Liferay门户,在我的.jsp文件中从动作阶段传递一个字符串数组到渲染阶段。我能够访问该数组并像这样迭代它:
<c:forEach var="item" items="${arrayItems}">
<p>${item}</p>
</c:forEach>
这只是为了检查数据传递是否正常...但是,我想将整个数组传递给我的Javascript函数(该函数处理将数据呈现到画布)。有什么想法如何做到这一点?
到目前为止,我已经尝试了以下方法:
<%
String[] items;
items = new String[((String[])request.getAttribute("arrayItems")).length];
items = ((String[])request.getAttribute("arrayItems"));
%>
<script>
displayItems(<% arrayItems %>);
</script>
并且
<script>
displayItems(${arrayItems});
</script>
我知道这可能是一个非常基本的问题,但关于在Web上传递portlet数据的教程并不多(当我找到任何教程时,该方法仅适用于单个字符串而不是数组)。谢谢任何提示!
PS:我已检查我的JavaScript函数是否正常工作:
<script>
displayMessages(["One", "Two", "Three"]);
</script>
<%!
和%>
。我已经更新了答案并进行了更改。但是,如果您要在不同的页面中创建javascript数组,则可能需要创建一个常规的.java文件,然后像这样包含它:<%@ page import="com.mycompany.MyUtilClass" %>
。 - Simon