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, пожалуйста? Огромное спасибо заранее. Уже два дня я ищу, я схожу с ума.