Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JаvaScript+JSF / 11 сообщений из 11, страница 1 из 1
11.05.2012, 18:53:24
    #37789970
denis11111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Как с помощю JаvaScript достучатся до Java-бина у JSF, вытянуть даные из бина в скрипт?
...
Рейтинг: 0 / 0
11.05.2012, 19:36:10
    #37790024
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Постановка задачи неправильная, что именно нужно сделать? Попутно - какая версия JSF? какие либы используются (richfaces primefaces icefaces)
...
Рейтинг: 0 / 0
13.05.2012, 18:50:29
    #37792227
fender989100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Вобщем должна бить некая схема, которая отображает состояние процеса, например если в базе прописано что "двери открыты", то SVG картинка должна мне это показать, изменой цвета например. Так вот, с помощю JavaScript я могу достучатся до любого елемента в DOM-дерева SVG-картинки, и изменить любые параметры, цвет, координаты, с помощю функцыи "setattribute" в JavaScript.
Ну а как загнать дание в setattribute из бина???
JSF 2.0, PrimeFaces.
...
Рейтинг: 0 / 0
13.05.2012, 18:59:04
    #37792235
fender989100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Вобщем это должно быть что-то АСУТП, scada, или как там ее...
З ядром проблем нет, дание собираем из весех датчиков, пишем в БД или виводим на XHTML-страницы ввиде цыфр, но картинкой то лучше будет... Вот и думаем как зделать. Только чтоб без апплетов.
...
Рейтинг: 0 / 0
13.05.2012, 21:58:50
    #37792373
milton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
fender989100,

Теоретически, можно сделать вывод из бина-состояния в поле hidden, а из него при помощи JavaScript делать то, что хочется.
...
Рейтинг: 0 / 0
13.05.2012, 23:55:48
    #37792468
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
забыл ник,

http://stackoverflow.com/questions/5997885/accessing-javascript-variables-from-jsf] Accessing Javascript variables from JSF
...
Рейтинг: 0 / 0
14.05.2012, 14:52:07
    #37793297
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
fender989100Вобщем должна бить некая схема, которая отображает состояние процеса, например если в базе прописано что "двери открыты", то SVG картинка должна мне это показать, изменой цвета например. Так вот, с помощю JavaScript я могу достучатся до любого елемента в DOM-дерева SVG-картинки, и изменить любые параметры, цвет, координаты, с помощю функцыи "setattribute" в JavaScript.
Ну а как загнать дание в setattribute из бина???
JSF 2.0, PrimeFaces.

Вы должны понять одну простую вещь, javascript - выполняется на клиенте, jsf - на сервере, то есть постановка "вытянуть даные из бина в скрипт? " -некорректна. А вот то что вы описали задачу, это хорошо, так как она просто решается с помощью ajax. Смысл в чем, вы в любой момент времени можете послать запрос на сервер и указать jsf какой метод выполнить(ну допустим проверить изменение вашей двери, далее в зависимости от результата вы можете отрендерить на стороне сервера некий кусок страницы, допустим
<div id="update" rendered="#{isDoorStateChanged}">
//..Тут вы можете сгенерировать любой javascript callback, причем используя EL-syntax Например
<script>
updateUI('#{doorState}');
</script>
/// Функция updateUI - javascriptовая, и должна быть определена на странице к моменту, когда произойдет ваш ajax запрос и должна понимать что делать с DOM деревом.
</div>



и вернуть этот HTML, а можно прямо и JSON, когда ajax запрос вернет респонс, сработает onSuccess хандлер(javascript функция), и вы можете сделать все что хотите - например, просто заменить старый HTML на новый, или если нужна более кастомная обработка - обработать JSON так как вам надо. Обращаю внимание, что на клиент уже вернется чистый HTML без EL, допустим вот такой -

<div id="update">
<script>
updateUI('opened');
</script>
</div>


Тут опять же есть тонкость - как оптимально получать обновления - в режиме реального времени или по интервалу. Можно посылать ajax запрос с определенным интервалом, так называемый поллинг, а можно реагировать на изменение состояния на сервере. Второй случай - вам надо смотреть на WebSockets, и JSF в таком случае вообще довольно таки ортогонально, в первом -
вы можете воспользоваться неким компонентом, например в RichFaces это <a4j:poll interval="" actionListener="#{action..}" render="update">, который возьмет большинство рутинных операций на себя, скорее всего нечто подобное есть и в primeFaces, я просто не шибко с ними знаком, или написать свой с использованием setTimeout.
...
Рейтинг: 0 / 0
14.05.2012, 14:54:07
    #37793303
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
ivanov-voidзабыл ник,

http://stackoverflow.com/questions/5997885/accessing-javascript-variables-from-jsf] Accessing Javascript variables from JSF

Ну а я что говорю? типичный образчик непонимания технологий и некорректно сформулированного вопроса, правда в том треде человек просто неудачно выразил свой вопрос, но задачу описал правильно, за что и был вознагражден быстрым и точным ответом.
...
Рейтинг: 0 / 0
15.05.2012, 11:22:48
    #37794479
denis11111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Зделал вобщем через скритие поля на xhtml, они обновляются раз в секунду primefices-элементом poll, а з низ JS берет все то что ему нужно и изменяет SVG. Вроде работат все нормально) а то в меня было что от всего этого браузер розростался к 1000 г в оперативке.
...
Рейтинг: 0 / 0
15.05.2012, 12:01:51
    #37794592
denis11111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
Не хочется продить темы, тож задам вопрос по primefaces здесь.
Есть елемент datatable, который в общем рисует таблицы пример , там как видете есть такая серенькая рамка. Вот в меня в Опере она не отображается, а если навести мышку на таблыцу, рамка появляется. В остальных браузарех все нормально.
Опера 11.64.
Может кто-то сталкивался с подобным?
...
Рейтинг: 0 / 0
15.05.2012, 12:42:47
    #37794746
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JаvaScript+JSF
denis11111Зделал вобщем через скритие поля на xhtml, они обновляются раз в секунду primefices-элементом poll, а з низ JS берет все то что ему нужно и изменяет SVG. Вроде работат все нормально) а то в меня было что от всего этого браузер розростался к 1000 г в оперативке.

Ну 1000 ИМХО слишком маленький интервал, хотя если таковы требования приложения, и количество юзеров небольшое - то все ок. А браузер возможно разрастался из-за того, что сборщик мусора для javascript несовершенен, или у вас где-то утечка, например в замыканиях сохраняете listener или DOM-элемент. Есть неплохте тулзы для мониторинга утечек памяти javascript. Мне в свое время очень помогала http://home.orange.nl/jsrosman/ - для IE

denis11111Не хочется продить темы, тож задам вопрос по primefaces здесь.
Есть елемент datatable, который в общем рисует таблицы пример, там как видете есть такая серенькая рамка. Вот в меня в Опере она не отображается, а если навести мышку на таблыцу, рамка появляется. В остальных браузарех все нормально.
Опера 11.64.
Может кто-то сталкивался с подобным?
Ну у меня давно сложилось впечатление что primefaces довольно неопрятно сделали(в смысле кроссбраузерности). Вы искали в их багтрекере?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JаvaScript+JSF / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]