Пространство имен портлетов GWT и JSR-168/286?

Разрабатываем набор портлетов для 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 и элементов», поскольку кажется, что GWT предварительно скомпилирован в Javascript до того, как идентификаторы будут когда-либо созданный. Есть идеи, как включить пространство имен портлета в идентификаторы div / элементов?


person Community    schedule 18.06.2009    source источник


Ответы (2)


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

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

person Community    schedule 04.09.2009

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

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

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

person Miguel Ping    schedule 25.09.2009