JSF中如何多次生成一个组件?
How to generate a component multiple times in JSF?
我需要突出一个国家的边界,为此我使用 GMaps4JSF 旨在将 Google 地图与 JSF 集成。
为了绘制多边形和多段线,库提供了polygonComponent
polylineComponent
个组件。
我已经将融合表中的数据点加载到我们自己的数据库中。
<m:map width="1000px" height="500px">
<m:polygon lineWidth="4">
<m:point latitude="35.555618" longitude="61.27652" />
<m:point latitude="35.517635" longitude="61.183601" />
<m:point latitude="35.348602" longitude="61.105827" />
<m:point latitude="35.281799" longitude="61.096241" />
<m:point latitude="35.23624" longitude="61.099781" />
<m:point latitude="35.17659" longitude="61.116379" />
<m:point latitude="35.163876" longitude="61.136036" />
<m:point latitude="35.132072" longitude="61.13166" />
<m:point latitude="35.085823" longitude="61.115547" />
<m:point latitude="35.016937" longitude="61.077492" />
<m:point latitude="34.879433" longitude="61.051102" />
<m:point latitude="34.789436" longitude="60.976654" />
<m:point latitude="34.650757" longitude="60.853191" />
<m:point latitude="34.567631" longitude="60.832909" />
<m:point latitude="34.561794" longitude="60.77916" />
<m:point latitude="34.556099" longitude="60.73999" />
<m:point latitude="34.544716" longitude="60.723877" />
....... and so on to a very very large extent
</m:polygon>
</m:map>
呈现为
在地图组件中手动输入多边形的纬度和经度属性是愚蠢的。
我怎样才能做到这一点,所以我只需要写这么多...
<m:map width="1000px" height="500px">
<m:polygon lineWidth="4">
<m:point latitude=" " longitude=" " />
</m:polygon>
</m:map>
就像我们有一个动态数据表,其中的行是动态生成的(多行)。这些<m:point latitude=" " longitude=" " />
怎么会生成多次?
您可以使用 <c:forEach>
。
<m:polygon lineWidth="4">
<c:forEach items="#{bean.points}" var="point">
<m:point latitude="#{point.latitude}" longitude="#{point.longitude}" />
</c:forEach>
</m:polygon>
<ui:repeat>
不适合,因为它不构建组件树。一种理论上的替代方法是使用来自 GMaps4JSF 的虚构 <m:points>
组件,如果它有的话。
另请参阅:
- JSTL in JSF2 Facelets... makes sense?
我需要突出一个国家的边界,为此我使用 GMaps4JSF 旨在将 Google 地图与 JSF 集成。
为了绘制多边形和多段线,库提供了polygonComponent
polylineComponent
个组件。
我已经将融合表中的数据点加载到我们自己的数据库中。
<m:map width="1000px" height="500px">
<m:polygon lineWidth="4">
<m:point latitude="35.555618" longitude="61.27652" />
<m:point latitude="35.517635" longitude="61.183601" />
<m:point latitude="35.348602" longitude="61.105827" />
<m:point latitude="35.281799" longitude="61.096241" />
<m:point latitude="35.23624" longitude="61.099781" />
<m:point latitude="35.17659" longitude="61.116379" />
<m:point latitude="35.163876" longitude="61.136036" />
<m:point latitude="35.132072" longitude="61.13166" />
<m:point latitude="35.085823" longitude="61.115547" />
<m:point latitude="35.016937" longitude="61.077492" />
<m:point latitude="34.879433" longitude="61.051102" />
<m:point latitude="34.789436" longitude="60.976654" />
<m:point latitude="34.650757" longitude="60.853191" />
<m:point latitude="34.567631" longitude="60.832909" />
<m:point latitude="34.561794" longitude="60.77916" />
<m:point latitude="34.556099" longitude="60.73999" />
<m:point latitude="34.544716" longitude="60.723877" />
....... and so on to a very very large extent
</m:polygon>
</m:map>
呈现为
在地图组件中手动输入多边形的纬度和经度属性是愚蠢的。
我怎样才能做到这一点,所以我只需要写这么多...
<m:map width="1000px" height="500px">
<m:polygon lineWidth="4">
<m:point latitude=" " longitude=" " />
</m:polygon>
</m:map>
就像我们有一个动态数据表,其中的行是动态生成的(多行)。这些<m:point latitude=" " longitude=" " />
怎么会生成多次?
您可以使用 <c:forEach>
。
<m:polygon lineWidth="4">
<c:forEach items="#{bean.points}" var="point">
<m:point latitude="#{point.latitude}" longitude="#{point.longitude}" />
</c:forEach>
</m:polygon>
<ui:repeat>
不适合,因为它不构建组件树。一种理论上的替代方法是使用来自 GMaps4JSF 的虚构 <m:points>
组件,如果它有的话。
另请参阅:
- JSTL in JSF2 Facelets... makes sense?