GMaps4JSF旨在将Google地图与JavaServer Faces(JSF)集成在一起,并使JSF开发人员仅用几个JSF标签即可构建复杂的街景全景图和地图。 您还可以轻松地将不同的组件(标记,信息文本,控件,地面叠加层,多边形,折线)附加到地图。 GMaps4JSF还允许将不同的服务器端和客户端事件附加到组件,而无需编写JavaScript代码将事件与组件绑定。 如果要实现组件的客户端事件处理程序,则仅需要编写JavaScript代码。
Ajax是任何现代Web应用程序中的主要技术。 尽管在早期版本的JavaServer Faces中未引入Ajax,但是它由许多JSF组件库提供,例如Apache MyFaces Trinidad,JBoss RichFaces,ICEFaces等。 现在好消息是,JSF 2.0实现本身就支持Ajax。
在本文中,我将解释如何在JSF 2.0应用程序中配置GMaps4JSF,并简要介绍JSF 2.0 Ajax。 最后,我将说明一个同时使用GMaps4JSF和JSF 2.0 Ajax的简单mashup应用程序。
首先,让我们使用JSF 2.0应用程序配置GMaps4JSF。 去做这个:
注册Google Maps API(请参阅参考资料 )。 您将需要接受使用协议并注册用于应用程序的网站。 作为回报,Google提供了针对您的应用程序的密钥。
要使用Google Maps API,您必须在页面中包含Google Maps API的脚本。 清单1显示了必须包含在<h:head>标记中的Google Maps API脚本。 您可以在Google Maps API文档中找到有关如何使用此代码的完整详细信息(请参阅参考资料 )。
在清单1的代码中,您将需要用在注册时提供给您的密钥替换短语"gen_website_key" 。 图2显示了Google Maps网站上此键的示例以及它如何适合您的代码。
接下来,您将需要GMaps4JSF的JAR文件。 从项目网站下载最新版本(请参阅参考资料 )。 图3显示了项目页面,其中的下载在右侧。
将下载的JAR文件放在JSF 2.0 Web应用程序的WEB-INF / lib目录中。
最后,将清单2中所示的库声明添加到您的XHTML页面,以便使用GMaps4JSF组件。
现在,Ajax已成为大多数现代Web 2.0应用程序的一部分。 从头开始编写“ Ajaxified”应用程序可能令人头疼。 在客户端,您必须编写一个JavaScript客户端来发送Ajax请求和接收Ajax响应。 在服务器端,应用程序必须准备一个客户端可以理解的响应。 除了所有这些复杂性之外,JavaScript客户端代码还应跨浏览器兼容。 JSF 2.0 Ajax可以为您完成所有这些工作。
在JSF 2.0中,有两种向JSF 2.0应用程序添加Ajax支持的方法。 您可以使用框架提供JavaScript库或新的<f:ajax>标记来声明对JSF组件的Ajax支持。
<f:ajax>标记允许创建附加到JSF组件的动作的Ajax请求。 例如,如果<f:ajax>标记放在诸如<h:commandButton>,类的动作源组件中<h:commandButton>,则它允许在该组件的"onclick"动作后发送Ajax请求。 如果将标记放在诸如<h:selectOneListbox>,类的值持有者组件中<h:selectOneListbox>,则它允许在组件的"onchange"操作后发送Ajax请求。
清单3显示了使用JSF 2.0 Ajax多么容易。 在此示例中, <f:ajax>标记放置在<h:inputText>组件内部。 因此,当用户在txtName输入文本中输入值并跳出时, txtEnteredName outputText将使用输入的值进行更新。
现在,让我们转到Countrys应用程序,该应用程序同时使用GMaps4JSF和JSF 2.0 Ajax。 在此应用程序中,您具有主dataTable和详细的地图。 dataTable每一行代表一个国家,当用户单击一行时,国家/地区的位置会显示在详细地图中。 图4显示了运行中的Countrys应用程序的屏幕截图。
清单4显示了mashups.xhtml代码的一部分,Countrys应用程序XHTML页面。 我将<f:param>标记放在<f:ajax>标记内,以便单击表行"View Country Location" commandLink时可以发送参数。 在<f:ajax>标记的render属性中,将包含地图组件的面板组的ID指定为“ mapGroup”。 当响应来自服务器时,将使用新信息#{param.selectedCountry} , #{param.selectedCapital}和#{param.continent} 。
清单5显示了Countrys应用程序示例托管Bean。 请注意,您可以从数据库或Web服务获取此托管Bean数据,但是对于我的演示而言,它仅包含有关不同国家的静态信息。
在本文中,您了解了JSF 2.0如何简化构建“ Ajaxified”应用程序的过程。 您还了解了使用GMaps4JSF构造Google地图并为其添加不同的标记,注释和控件是多么容易。 我解释了在JSF 2.0应用程序中使用GMaps4JSF是多么简单,现在,作为JSF 2.0开发人员,您可以轻松地在JSF 2.0应用程序中构建Web 2.0混搭,而无需编写JavaScript代码。
翻译自: https://www.ibm.com/developerworks/java/library/wa-aj-gmaps/index.html
相关资源:微信小程序源码-合集6.rar