使用JSF从资源包传递本地化的javascript消息

Pie*_*e C 4 javascript jsf localization resourcebundle

我用JSF构建了一个应用程序,服务器发出的所有消息都使用资源包进行了本地化.

我的问题是:如何在客户端浏览器中发布消息,javascipt本地化与资源包中存储的消息?

我是否必须动态生成javascript,如果是这样,如何才能完成?

例如,如何让服务器在以下表单验证方法中本地化«alert»javascript消息:

function valider() {
    typeActionRadio = document.getElementById("membres_editer_creer:typeActionAdr");
    if (typeActionRadio.style.display == "block") {
        var boutonsRadio = document.forms["membres_editer_creer"]["membres_editer_creer:typeActionAdr"];
        for ( var i = 0; i < boutonsRadio.length; i++)
             if (boutonsRadio.item(i).checked) return true;
    }
     alert ("Vous devez indiquer la raison du changement d'adresse (bouton radio à sélectionner).");
    return false;
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 9

让JSF打印所需的JS代码.例如

<script>
    var message = "#{bundle['some.key']}";
</script>
Run Code Online (Sandbox Code Playgroud)

您只需要将JS特殊字符(例如单引号和换行符)考虑在内.为此,您可以注册一个自定义EL函数,该函数委托给Apache Commons Lang StringEscapeUtils,或者使用OmniFaces of:escapeJS()函数.