.jsp ファイルでアクション フェーズからレンダリング フェーズに String 配列を渡す Liferay ポートレットがあります。配列にアクセスして、次のように反復処理できます。
<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 上のポートレットでデータを渡す方法に関するチュートリアルはあまりありません (そして、私が見つけたとき、アプローチは配列ではなく単一の文字列に対してのみ機能しました)。ヒントをありがとう!
PS: JavaScript 関数が正しく動作することを確認しました:
<script>
displayMessages(["One", "Two", "Three"]);
</script>