2014-01-17 7 views
0

Я использую IPC для связи с несколькими портлетами. Итак, у нас есть один портлет Universal Admin, который имеет свойства конфигурации, которые будут сохранены в настройках портлета.Настройка и получение идентификатора портлета в Liferay

Если я хочу получить настройки портлета определенного портлета в любом другом портлете, я должен знать его идентификатор.

So, How do I set the portlet ID for my portlets manually, how do I get that in code?

+0

для получения идентификатора портлета: - com.liferay.portal.util.PortalUtil.getPortal(). GetPortletId (запрос) –

+0

@LuckyBoy, я хочу установить и получить его. Что делать, если у меня нет доступа к коду другого портлета. пожалуйста, перечитайте вопрос еще раз. Я хочу получить доступ к другой конфигурации портлета, а не к своему портлету. – Reddy

ответ

1

Как вы говорите о «конкретной другой портлет», вы, кажется, уже знаете портлет, который вы хотите получить доступ - и, таким образом, должны иметь доступ к его ид ... Или, другими словами, Я не уверен, чего вы пытаетесь достичь, или как ваш портлет UniversalAdmin получит доступ к этой информации.

В принципе, API Liferay предоставляет вам доступ к различным сайтам, которые вы можете создать в Liferay, например. как GroupService (сайт имеет техническое название «группа»). Страницы в Liferay называются макетами, сайты/группы состоят из двух LayoutSets (общедоступные и закрытые страницы). Эти макеты дают вам доступ к портлетам, которые содержатся на них. Просто проверьте полный API на http://docs.liferay.com/portal/6.1/javadocs/. Это помогает получить некоторое базовое понимание Liferay's ServiceBuilder, чтобы знать, как работать с API

Редактировать: Как вы говорите, вы хотите генерировать идентификатор портлета самостоятельно. Вы сами будете знать, почему вы хотите это сделать - я рекомендую посмотреть пример кода добрых севеков. К сожалению, он прекращен (вы найдете его в старых версиях исходных кодов), но у Джеймса Фалькнера blogged about some of its features. Вы специально хотите взглянуть на параграфы «Добавление портлета в макет (страница)» и «Добавление ресурсов в макет»), но остальное тоже довольно интересно.

Вкратце: Liferay зависит от некоторых элементов этого идентификатора, который должен быть воспроизводимым - для неинтуируемых портлетов у вас нет выбора, и идентификатор полностью предопределен. За этим предопределенным идентификатором для нестандартных портлетов следует «INSTANCE» и некоторые случайные символы. Как я сказал выше: мне непонятно, что вы получаете, когда запускаете генератор случайных чисел самостоятельно, вместо того, чтобы полагаться на существующий механизм, но вы будете лучше знать, чего вы хотите достичь.

+0

в простой форме, как назначить портлет ID для любого портлета, а не позволять Liferay генерировать. – Reddy

0

Я не имею в виду способ изменить идентификатор портлета.

Хотя если вы хотите определить свой конкретный идентификатор в каждом портлете, вы можете использовать тег portle-name для portlet.xml, чтобы установить псевдодиск. Таким образом, вы можете использовать этот тег как уникальный идентификатор, относящийся к каждому портлету.

Смежные вопросы