将Bean的值作为字符串用于Javascript使用

将Bean的值作为字符串用于Javascript使用

问题描述:

我试图根据bean的值设置组件的文本。我为此使用jquery,因为文本根据特定条件而变化。将Bean的值作为字符串用于Javascript使用

所以,jQuery代码如下所示:

window.onload =function(){ 
    $('.pnx-inline-input').on("change keyup paste", function(){ 
     var saveText = #{extra.Active_Save};     
     $('.save-button .pnx-btn-text').html(saveText); 
}); 

额外豆处理本地化。所以,假设语言环境是法国,文本是注册。问题是,呈现页面时,该代码段看起来像这样

window.onload =function(){ 
    $('.pnx-inline-input').on("change keyup paste", function(){ 
     var saveText = Enregister;    
     $('.save-button .pnx-btn-text').html(saveText); 
}); 

当然,Enregister没有在任何地方定义,这将导致错误。我需要编码看起来像

var saveText = "Enregister"; 

这是有道理的。

我该如何做到这一点?谢谢!

JSF在这个问题的背景下仅仅是一个HTML代码生成器。只需在HTML模板中自己写下这些引号即可。它们是生成的HTML输出的一部分,而不是Java变量的一部分。你知道,JavaScript不会与Java/JSF一起运行(即它不是服务器端)。相反,它与HTML一起运行(即它是客户端)。

var saveText = "#{extra.Active_Save}"; 

请注意,您还需要考虑到的值是正确的JS-逃脱,否则整个事情在JavaScript方面仍然会打破如果字符串本身包含在JS双引号或其他特殊字符,如换行符。该JSF utility library OmniFaces有根本目的的EL功能,#{of:escapeJS()}

var saveText = "#{of:escapeJS(extra.Active_Save)}"; 

你当然也可以homegrow your own基于例如Apache Commons LangStringEscapeUtils