将bean值提取为字符串以供Javascript使用

将bean值提取为字符串以供Javascript使用,javascript,jquery,jsf,Javascript,Jquery,Jsf,我试图根据bean的值设置组件的文本。我之所以使用jquery是因为文本会根据特定条件而变化 因此,jquery代码如下所示: window.onload =function(){ $('.pnx-inline-input').on("change keyup paste", function(){ var saveText = #{extra.Active_Save}; $('.save-button .pnx-btn-t

我试图根据bean的值设置组件的文本。我之所以使用jquery是因为文本会根据特定条件而变化

因此,jquery代码如下所示:

window.onload =function(){
    $('.pnx-inline-input').on("change keyup paste", function(){
        var saveText = #{extra.Active_Save};                
        $('.save-button .pnx-btn-text').html(saveText);
});
额外的bean处理本地化。那么,假设地点是法国,文本是Enregister。问题是当呈现页面时,代码段如下所示

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一起运行(即,它是客户端)

请注意,您仍然需要考虑值是正确的JS转义的,否则,如果字符串本身包含双引号或JS中的其他特殊字符(如换行符),则整个过程在JavaScript端仍然会中断。具有用于以下目的的EL功能:

当然,您也可以基于,例如
StringEscapeUtils

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