Запуск jsf управляемого метода bean из javascript - PullRequest
0 голосов
/ 24 мая 2011

Я довольно новичок в JS и столкнулся с проблемой использования управляемого бина из javascript.

Я пытаюсь сделать это с помощью h: inputHidden, но все еще не имею правильного поведения.

<h:inputHidden id="hidden" value="#{bean.myVariable}" />

и мой сценарий

<script type="text/javascript">
        function func(){
            var varFromBean = document.getElementById('myForm:myVariable').value;
            ....
        }

</script>

Я что-то делаю неправильно?И есть другие способы определить переменную JS, запустив метод управляемого компонента?

Заранее спасибо!

РЕДАКТИРОВАТЬ

Мне нужно это для rich: настройка календаря.Мне нужно разрешить пользователю выбирать дату из определенного периода.

<rich:calendar value="#{bean.selectedDate}"
               isDayEnabled="disableDays" dayStyleClass="disabledDaysStyle"
               firstWeekDay="1"/>

и полный JavaScript для этого:

<script type="text/javascript">
        function disableDays(day){
            var curDt = new Date();
            if (curDt == undefined){
                curDt = day.date.getDate;
            }
            var period = document.getElementById('form:period').value;
            if ((curDt.getTime() + period) &gt; day.date.getTime()) return true;
            if (curDt.getTime() &lt; (day.date.getTime()))  return true;
            else return false;
        }
        function disabledDaysStyle(day){
            if (!disableDays(day)) return 'rich-calendar-boundary-dates';
        }
</script>

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Чтобы получить значение управляемого компонента из скрытого ввода JSF в JS, вы можете использовать jQuery следующим образом:

Сначала используйте h: inputText вместо этого, чтобы определить класс для поиска в jQuery ('classForSearch'). Чтобы скрыть ввод, добавьте простой класс CSS ('inpt-hidden'):

<style>
    .inpt-hidden { display: none; }
</style>

<h:inputText value="#{bean.myVariable}" styleClass="inpt-hidden classForSearch" />

После этого вы сможете получить к нему доступ, используя jQuery:

<script type="text/javascript">
        function func(){
            var varFromBean = jQuery('.classForSearch').val();
            ....
        }

</script>

Горячая настройка jQuery вы можете найти по адресу: http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery#Setup

0 голосов
/ 25 мая 2011

Метод управляемого компонента не будет работать при попытке получить значение элемента на стороне клиента.Это просто возвращает значение, которое уже присутствует после загрузки страницы.Для запуска метода вы можете использовать a4j: jsFunction (или его аналог, если вы не используете jsf 1.2) с необходимыми параметрами.

...