gpt4 book ai didi

javascript - 在 JavaScript 文件中混合 JSF EL

转载 作者:IT王子 更新时间:2023-10-29 03:08:37 24 4
gpt4 key购买 nike

有没有办法让Expression Language (EL) 表达式包含的 JavaScript 文件会被 JSF 评估吗?

我希望 Seam 可以解决这个问题,但到目前为止运气不好。我想要的只是能够在跨页面共享的 JavaScript 函数中使用本地化消息。

最佳答案

五种方式:

  1. 在父 JSF 页面中将其声明为全局变量。

    <script type="text/javascript" src="script.js"></script>
    <script type="text/javascript">
    var messages = [];
    <ui:repeat value="#{bean.messages}" var="message">
    messages['#{message.key}'] = '#{message.value}';
    </ui:repeat>
    </script>

    或者,如果它已经是 JSON 格式。

    <script type="text/javascript" src="script.js"></script>
    <script type="text/javascript">var messages = #{bean.messagesAsJson};</script>
  2. 把整个<script>在 XHTML 文件中并使用 ui:include包括它。

    <script type="text/javascript" src="script.js"></script>
    <ui:include src="script-variables.xhtml" />
  3. 通过 *.js通过JspServlet (仅当足以评估 ${} 表达式时)。例如。在 web.xml (<servlet-name>JspServlet 可以在相关servletcontainer 的web.xml 中找到,通常是jsp )。

    <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.js</url-pattern>
    </servlet-mapping>
  4. 使用具有修改内容类型的“好旧”JSP。重命名 script.jsscript.jsp并将以下行添加到 JSP 的顶部(仅当它足以计算 ${} 表达式时):

    <%@page contentType="text/javascript" %>
  5. 让JS在加载时通​​过ajax方式获取数据。这是一个 jQuery有针对性的例子。

    $.getJSON('json/messages', function(messages) {
    $.each(messages, function(key, value) {
    $.messages[key] = value;
    });
    });

关于javascript - 在 JavaScript 文件中混合 JSF EL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com