Не могу заставить jQuery работать с Icefaces + Liferay

Я пытаюсь разработать простой портлет Liferay с инфраструктурой Icefaces и не могу заставить работать jQuery.

Основная проблема в том, что я не могу правильно загрузить библиотеку jQuery. Всякий раз, когда я добавляю теги сценария в свой заголовок xhtml, как это

<h:head>
    <script></script>
</h:head>

на странице отображается сообщение об ошибке:

не удалось добавить text[ ] в #document

Поэтому я попытался вместо этого загрузить библиотеку jQuery с тегом h:outputScript, но в Icefaces параметр target="head" не работает — см. http://jira.icesoft.org/browse/ICE-8313.

<h:outputScript library="scripts" name="jquery-1.9.1.js" target="head" />

Итак, на данный момент я понятия не имею, кому включить библиотеку jQuery (или любой другой javascript).

Пожалуйста, не предлагайте использовать другой фреймворк. Icefaces востребован в будущих проектах, поэтому мне нужно к нему привыкнуть.

Все, что я пытаюсь сделать, это что-то вроде этого: http://jqueryui.com/sortable/

Заранее спасибо, Фаби.


person FeinesFabi    schedule 21.02.2013    source источник


Ответы (2)


Я надеюсь, вы знаете, что этот тег <h:head> в конечном итоге сгенерирует HTML-тег <head>.

А так как портлеты — это просто фрагменты, они не должны содержать никаких тегов <head>, поэтому в liferay вы можете указать свой javascript либо в <header-portlet-javascript> или <header-portal-javascript> в liferay-portlet.xml.

Или же включите свою библиотеку javascript в тему, которую вы создадите внутри portal_normal.vm.

person Prakash K    schedule 21.02.2013
comment
Спасибо за разъяснения. Загрузка библиотеки с помощью ‹header-portlet-javascript› работает нормально. - person FeinesFabi; 21.02.2013

Вы можете импортировать JS-библиотеку с <header-portlet-javascript> в файле liferay-portlet.xml. Возможно, вам поможет этот (старый) пример.

person Eich    schedule 21.02.2013