1

我有一个小问题。我在 primefaces 中使用 gmap,我们需要加载脚本

<script src="http://maps.google.com/maps/api/js?sensor=true" type="text/javascript"/>

但是我需要根据用户区域设置的语言加载脚本。

我怎样才能在不“硬编码”字符串的情况下做到这一点?

我试过这样的事情:

    <script src="http://maps.google.com/maps/api/js?sensor=true&amp;language="#{template.userLocale} type="text/javascript"/>
// {template.userLocale} has a string o the locale

你能帮忙吗?

4

1 回答 1

1

你有一个 HTML 语法错误。给定语言,您最终得到的结果如下en

<script src="http://maps.google.com/maps/api/js?sensor=true&amp;language="en type="text/javascript"/>

(在浏览器中右键单击页面并查看源代码以自己查看)

您需要将双引号移动到属性值的末尾:

<script src="http://maps.google.com/maps/api/js?sensor=true&amp;language=#{template.userLocale}" type="text/javascript"/>

这样HTML最终将是:

<script src="http://maps.google.com/maps/api/js?sensor=true&amp;language=en" type="text/javascript"/>

EL 只能用于模板文本。您需要意识到 JSF 基本上生成 HTML 代码。HTML<script src>属性和 EL#{}不同步运行。相反,JSF/EL 处理它,您只需要确保生成的 HTML 在语法上是有效的。

于 2012-12-18T17:10:22.427 回答