use*_*680 40 javascript jsf seam el
有没有办法让包含JavaScript文件的表达式语言(EL)表达式由JSF评估?
我希望Seam可以解决这个问题,但到目前为止还没有运气.我想要的只是能够在我的JavaScript函数中使用本地化的消息,这些消息在页面之间共享.
Bal*_*usC 64
五种方式:
在父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>
Run Code Online (Sandbox Code Playgroud)
或者,如果它已经是JSON格式.
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">var messages = #{bean.messagesAsJson};</script>
Run Code Online (Sandbox Code Playgroud)将整体<script>放在XHTML文件中并用于ui:include包含它.
<script type="text/javascript" src="script.js"></script>
<ui:include src="script-variables.xhtml" />
Run Code Online (Sandbox Code Playgroud)通*.js过JspServlet(只有当它足以只评价${}表达式).例如,在web.xml(对<servlet-name>中JspServlet可以发现web.xml有问题的servletcontainer的,它通常是jsp).
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)使用具有修改内容类型的"good old"JSP.重命名script.js,以script.jsp与下面的行添加到JSP(只有当它足以只评价的顶部${}表达式):
<%@page contentType="text/javascript" %>
Run Code Online (Sandbox Code Playgroud)让JS在加载期间获取数据.这是一个jQuery目标示例.
$.getJSON('json/messages', function(messages) {
$.each(messages, function(key, value) {
$.messages[key] = value;
});
});
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
27911 次 |
| 最近记录: |