在 JavaScript 中包含 JSF 表达式语言

2024-02-24

我找到了这个问题和答案在 JavaScript 文件中混合 JSF EL https://stackoverflow.com/q/2547814/1502416

这个问题是在 2 年前提出的,所以想知道 JSF 2.0 是否还有其他替代方案。

我一直在考虑使用

<h:outputStylesheet> 

在这些文件中包含 CSS 和 EL 似乎确实得到了解析。

然而使用

<h:outputScript>

似乎没有做同样的事情。

So

问题 1)上述是更好的方法吗(如果有效的话)?

问题2)因为它似乎不适用于JS,所以哪个答案在 JavaScript 文件中混合 JSF EL https://stackoverflow.com/q/2547814/1502416post 被认为是更好的选择。

Thanks


我将添加到 BalusC 提供的第一个选项的变体选项列表中,以避免全局变量:

<script id='message-data' type='text/json'>
  { "messages": [    
  <ui:repeat items="#{bean.messages}" var="message">"#{message.value}",</ui:repeat> null
  ] }
</script>

然后,当您需要消息时,您可以通过 JavaScript:

var msgData = document.getElementById('message-data').innerHTML;
msgData = JSON.parse(msgData);

这个想法是在未解析的中创建一个 JSON 对象<script>标签(这就是将“type”设置为“text/json”的作用),然后通过读取它JSON.parse.

另一种(通用)方法是使用类和data-xxx属性将 JSF 上下文中的内容放入 HTML,然后 JavaScript 可以“发现”HTML。

使用服务器端模板系统处理整个 JavaScript 文件有一个显着的缺点,即客户端无法缓存这些文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中包含 JSF 表达式语言 的相关文章

随机推荐