javascript数组和jsf/richfaces
我有以下javascript代码:javascript数组和jsf/richfaces,java,javascript,jsf,richfaces,Java,Javascript,Jsf,Richfaces,我有以下javascript代码: <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/js/sample-points.js"></script> <script type="text/javascript">//<![CDATA[ var cloud
<script type="text/javascript"
src="#{facesContext.externalContext.requestContextPath}/js/sample-points.js"></script>
<script type="text/javascript">//<![CDATA[
var cloudmade = new CM.Tiles.CloudMade.Web({key: 'bbb'});
var map = new CM.Map('cm-example', cloudmade);
map.setCenter(new CM.LatLng(51.50874, 22.76367), 4);
var markers = [];
for (var i = 0; i < samplePoints.length; i++) {
markers.push(new CM.Marker(new CM.LatLng(samplePoints[i][0], samplePoints[i][1])));
}
var clusterer = new CM.MarkerClusterer(map, {clusterRadius: 70});
clusterer.addMarkers(markers);
//]]></script>
//
“采样点”是一个坐标数组,我可以用它在地图上显示标记
地图如下所示:
<div id="cm-example" style="width: 99.5%; height: 600px"></div>
如何从jsf/richfaces中提供这个数组而不使用文件(例如,我想从db中获取这些数据,创建数组并发送到此脚本)
谢谢看到了吗
使用jsFunction,您可以加载任何数据结构(例如点),在客户端,您可以得到一个javaScript数据结构,您可以轻松访问它(point.x)。只要让JSF打印它,就像它是javaScript代码一样 替换
var markers = [];
for (var i = 0; i < samplePoints.length; i++) {
markers.push(new CM.Marker(new CM.LatLng(samplePoints[i][0], samplePoints[i][1])));
}
var标记=[];
对于(变量i=0;i
通过(假设Facelets)
var标记=[];
markers.push(新CM.Marker(新CM.LatLng(#{samplePoint[0]},#{samplePoint[1]}));
其中
#{bean.samplePoints}
返回一个列表
或其他东西。你说的“假设Facelets”是什么意思?JSF可以在旧JSP或其后续Facelets(基于XML)上使用。
在旧JSP中不可用。如果您在XHTML文件中使用JSF2.0,那么您肯定在使用Facelets。那是不是意味着我不能用?你可以用它。您有一个xmlns:ui=”http://java.sun.com/jsf/facelets“
在根标记声明中,对吗?是的,我有,但是当我尝试执行代码的那部分时,我认为我永远不会到达循环(或者ui中的行:repeat)。我得到了生成的代码:markers.push(new CM.Marker(new CM.LatLng)(samplePoint[0],samplePoint[1])代码>Bean:私有列表采样点@创建公共void init(){String[]a=新字符串[2];a[0]=“50.439750076928”;a[1]=“30.6139826774597”;samplePoints.add(a);}。。。getter setter