Написание портлетов для Liferay CMS / Portal

Я новичок в портлетах и ​​у меня вопрос о том, как они работают на порталах CMS (мы оцениваем Liferay как CMS).

Скажем, например, я хотел бы создать портлет для отображения всех книг, необходимых для определенного курса. Вам не нужно входить в систему, чтобы увидеть это, оно появится на общедоступном веб-сайте.

В CMS я создам две страницы для ENGL-100 и HIST-300.

Я хочу добавить один и тот же портлет на каждую страницу. Я планирую развернуть портлет как военный файл.

Как я могу указать портлету на каждой странице, какой курс искать? Не говорите мне, что мне нужно изменить файл portlet.xml для каждой темы. Есть ли у портлета доступ к параметрам URL?


person jeph perro    schedule 25.06.2010    source источник


Ответы (2)


Да, портлеты могут обрабатывать параметры URL. Вот как вы пойдете, чтобы реализовать то, что хотите. В зависимости от страницы, которую вы посещаете, вы просто передаете тему курса как параметр URL и позволяете портлету обработать ее за вас. Конечно, вам нужно обратиться к базе данных, чтобы найти правильный курс и т. Д., Чтобы вернуть правильные данные.

person Leniel Maccaferri    schedule 25.06.2010
comment
Нельзя ли установить переменную при размещении портлета на странице? Нельзя ли разместить на одной странице два одинаковых портлета, каждый из которых ссылается на другой курс? - person jeph perro; 25.06.2010
comment
На одной странице можно разместить 2 экземпляра портлета. Просто измените параметр URL при настройке страницы свойств портлета. Для каждого портлета укажите свой идентификатор курса, чтобы он мог получить правильные данные курса из базы данных. - person Leniel Maccaferri; 25.06.2010
comment
В портетах JSR вы не должны анализировать параметры URL-адреса, подробнее см. Ниже. - person jayshao; 03.07.2010

Портлеты не должны напрямую полагаться на параметры URL - именно по этой причине - у вас может быть несколько экземпляров на одной странице, и вы не хотите, чтобы они конфликтовали (поскольку все они будут видеть параметры во время рендеринга , хотя действие получит только один)

В Liferay вы можете просто отбросить 2 портлета, и если вы используете Preferences через EDIT или Liferay Config view, настройки будут иметь отдельную область видимости для визуализации начального состояния. Контейнер будет держать 2 портлета прямо.

person jayshao    schedule 03.07.2010