Пространство имен портлетов GWT и JSR-168/286? - PullRequest
2 голосов
/ 18 июня 2009

Мы разрабатываем набор портлетов для Liferay. В настоящее время мы используем JSP, поэтому мы можем использовать тег для DIV и идентификаторов элементов, чтобы они были уникальными на странице, даже если на странице появляется несколько экземпляров одного и того же портлета; например:

<div id='<portlet:namespace/>div'>  
<form>
    Enter your name here: <input type='text' id='<portlet:namespace/>name'/>  
</form>  
</div>  

Теперь мы хотели бы попробовать построить портлеты с GWT вместо JSP. Любые примеры портлетов GWT, которых я нахожу (из которых есть только пара), не решают проблему «как назначить уникальные идентификаторы элементу div и elements», поскольку GWT, кажется, предварительно скомпилирован в Javascript до того, как идентификаторы когда-либо генерируется. Любая идея о том, как включить пространство имен портлета в идентификаторы div / element?

Ответы [ 2 ]

2 голосов
/ 25 сентября 2009

Вот лучшая ссылка, которую я нашел: http://xantorohara.blogspot.com/2007/07/portlets-and-gwt.html

Я решил это с помощью уникального идентификатора для каждого портлета на основе GWT на уровне корневого контейнера. Кроме того, я реализовал шаблон Command и имел диспетчер команд, основанный на поддержке истории GWT, который будет отправлять соответствующие действия портлету, не мешая другим портлетам.

Поскольку liferay поддерживает jsr 286, вы можете организовать ajax-вызов GWT, который бы возвращал идентификатор портлета и использовал этот идентификатор для различения разных портлетов.

2 голосов
/ 04 сентября 2009

GWT содержит метод setId () класса Element, который вы можете использовать.

Если вы используете виджеты, вы можете вызвать widget.getElement (). SetId (...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...