int tel input - var allCountries - java to html to javascript - как передать строку в переменную и использовать ее в js

Я не знаю, как это решить. Я создал метод Java, который создает строку со всей информацией на местном языке:

public String getAllCountries(){
StringBuilder sb = new StringBuilder();
sb.append("[ ");
ResourceBundle bundlePays = ResourceBundle.getBundle(BUNDLE_PAYS, localeBean.getLocale());
for(int i = 0; i< bundlePays.keySet().size(); i++ ){
String key = (String) bundlePays.keySet().toArray()[i];
String nomPays = traduirePays(key);
ResourceBundle bundlePrefix = ResourceBundle.getBundle(BUNDLE_PREFIX);

        if ((AieStringUtils.getSafeBundleString(bundlePrefix, key)) != key){

            String prefix = bundlePrefix.getString(key);
            sb.append("[");
            sb.append("\"" + nomPays + "\"" + "," + "\""+ key +"\"" + "," + "\""+ prefix + "\"");
            if (i!=bundlePays.keySet().size()-1){
                sb.append("], ");
            }else{
                sb.append("] ");
            }
        }
    }
    sb.append(" ]");
    String allCountries = sb.toString();
    System.out.println(allCountries);
    return allCountries;

}

Я поместил результат в мой xhtml так:

<inputTextArea type="hidden" name="allCountries" id="allCountries" 
                        value="#{pageInfoPerso.allCountries}"/>

Это дает мне такой результат:

[ ["Vanuatu","VU","678"], ["Vietnam","VN","84"], ["Equateur","EC","593"], ["Iles Vierges Americaines","VI","1"], ["Algerie","DZ","213"], ["Iles Vierges Britanniques","VG","1"], ["Venezuela","VE","58"] ]
etc

Затем я хочу использовать это в intlTelInput.js. Итак, я решил поместить переменную в js и вставить ее таким образом из xhtml:

<h:outputScript>
        jQuery(document).ready(function() {                     
                     $("#phoneNumber").intlTelInput({
                     var allCountries={allCountries : document.getElementById("allCountries").innerHTML};
                        utilsScript: "/js/utils.js"
                    });
                     $("#phoneNumber2").intlTelInput({
                        utilsScript: "/js/utils.js"
                    });
                });

    </h:outputScript>

Это не работает, и я получаю эту ошибку: "Ошибка синтаксиса: отсутствует: после идентификатора свойства"

Скорее всего, я должен сказать вам, что я никогда не делал ничего передового и никогда раньше не касался Javascript:/

Я тоже попробовал прямо в

 the js file to put my var like this at the top of it :

//var allCountries = document.getElementById("allCountries").innerHTML;
//
//for (var i = 0; i < allCountries.length; i++) {
//    var c = allCountries[i];
//    allCountries[i] = {
//        name: c[0],
//        iso2: c[1],
//        dialCode: c[2],
//        priority: c[3] || 0,
//        areaCodes: c[4] || null
//    };
//}

Это не сработало, и я получил это сообщение:

msgstr "this.countries[0] не определено для ввода тел"

Может кто-нибудь объяснить мне, как я могу передать свою строку из Java в HTML для Js, пожалуйста? Огромное спасибо заранее. Уже два дня я ищу, я схожу с ума.

0 ответов

Другие вопросы по тегам