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

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

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

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

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

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам