Nac*_*321 2 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-text').html(saveText);
});
Run Code Online (Sandbox Code Playgroud)
Extra bean处理本地化.所以,假设语言环境是法国,文本是Enregister.问题在于,在呈现页面时,代码段看起来像这样
window.onload =function(){
$('.pnx-inline-input').on("change keyup paste", function(){
var saveText = Enregister;
$('.save-button .pnx-btn-text').html(saveText);
});
Run Code Online (Sandbox Code Playgroud)
当然,Enregister没有在任何地方定义,这会导致错误.我需要代码看起来像
var saveText = "Enregister";
Run Code Online (Sandbox Code Playgroud)
为此有意义.
我怎样才能做到这一点?谢谢!
JSF在这个问题的上下文中只是一个HTML代码生成器.只需在HTML模板中自己写下这些引号即可.它们是生成的HTML输出的一部分,而不是Java变量的一部分.您知道,JavaScript不与Java/JSF一起运行(即它不是服务器端).相反,它与HTML一起运行(即它的客户端).
var saveText = "#{extra.Active_Save}";
Run Code Online (Sandbox Code Playgroud)
请注意,您仍然需要考虑该值是否正确JS转义,否则如果字符串本身包含JS中的双引号或其他特殊字符(如换行符),整个事情仍将在JavaScript方面中断.在JSF工具库OmniFaces先后为根本目的,在EL函数#{of:escapeJS()}:
var saveText = "#{of:escapeJS(extra.Active_Save)}";
Run Code Online (Sandbox Code Playgroud)
您当然也可以基于例如Apache Commons Lang 自己创建自己的. StringEscapeUtils
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |