Вы можете сделать
<h:inputHidden id="someID" value="#{randomNumber.data}/>
(не забудьте добавить геттер / сеттер к вашим данным в bean-компоненте)
изменить свой клик на h:commandButton
onclick="myArrayList()" // or onclick="myArrayList(#{SomeELExpressioGoesHere})"
измените свою функцию js на
function myArrayList(inputParam) {
alert(jQuery('#someID').val());
var yourJSString = jQuery('#someID').val();
var myArray = yourJSString.split(','); //when string is Afghanistan,Albania,Zimbabwe (no spaces)
alert(myArray[inputParam]);
}
чтобы перевести вашу строку js в массив, просто используйте
var yourJSString = jQuery('#someID').val()
var myArray = yourJSString.split(','); //when string is Afghanistan,Albania,Zimbabwe (no spaces)
вам может понадобиться изменить someID
на другой селектор идентификатора, если вы не установите prependId = false в вашей форме ... или просто используете расширенный селектор jquery, такой как
alert(('input[id$="someID"]').val());
EDIT
Посмотрите на мой пример, вы должны работать с переменной данных String, а не со странами, потому что вы должны передавать данные только в виде строки, а не в виде массива ... после того, как вы передадите переменную данных в js, вы можете манипулировать ею с простой функцией slpit js, которая делает его обратно массивом в вашем js ... вы получаете значение параметра Ошибка преобразования '[Афганистан, Албания, Зимбабве]' для 'null, потому что вы пытаетесь установить строку в массив ... вероятно, получатель стран неявно преобразует массив java в строку, и когда вы пытаетесь отправить его обратно (строка в массив), вы получаете исключение
для установки из js обратно в bean:
jQuery('#someID').val("Some new String goes here");
тогда, когда вы отправите форму .. значение будет возвращено на сервер