在 JSF 中,如何在使用后备 Bean 方法获取值后调用 java 脚本

In JSF how to invoke java script after getting a value using backing bean method

本文关键字:获取 方法 调用 脚本 java Bean JSF      更新时间:2023-09-26

我正在我的jsf应用程序中开发一个功能,它应该从数据库中检索地点的纬度并将其绘制在Google地图中。由于 gmaps4jsf 库没有使用 google maps java script api v3 进行更新,因此我正在使用 google maps java script api。问题是我无法在检索纬度和纬度(通过 jsf)后调用脚本在地图中绘制该位置。

这个问题的解决方案是什么?

只要让 JSF 打印它,就好像它是一个 JS 变量一样。

<h:form>
    <h:commandButton value="Submit" action="#{bean.submit}" />
</h:form>
<h:outputScript rendered="#{not empty bean.lat and not empty bean.lon}">
    var lat = #{bean.lat};
    var lon = #{bean.lon};
    initializeMapSomehowWith(lat, lon);
</h:outputScript>

<h:outputScript>生成一个 HTML <script type="text/javascript"> 元素,如果您仍在使用旧的 JSF 1.x,请改用 <h:panelGroup><script>,并在模板文本中使用 <h:outputText> 而不是 EL)

用类似的东西

public void submit() {
    lat = 12.106173;
    lon = -68.935304;
}

请记住:JSF 基本上生成 HTML。JS是HTML响应的一部分。