/ / Programowanie portletów / portletów - linkowanie portletów / przepływ stron - java, portlet, system portalowy

Programowanie portali / portletów - łączenie portletów / przepływ stron - java, portlet, portal-system

Piszę pierwszą aplikację opartą na portletach(na całe życie, ale rozwiązaniem powinno być agnostyk kontenerowy) i zastanawiam się, jak ludzie rozwiązują problemy, udostępniając łącza do użytkownika, który „prowadzi” do różnych portletów (może na różnych „stronach” w portalu).

Chociaż możesz łatwo mieć różne tryby widoku wewnątrz portletu, jak możesz połączyć się z innym portletem i (być może) również przekazywać parametry?

Nie mówię o zwykłej komunikacji między portletami, ale interesuje mnie prawdziwy przepływ stron.

Przykład: Masz stronę A z portletem, który wyświetla listę wiadomości. Następnie masz stronę B, która jest w sposób skonfigurowany, tak jak chciałbym, aby pojedynczy element wiadomości był wyświetlany (na przykład różne portlety wokół niego)

Czy istnieje ogólne rozwiązanie umożliwiające połączenie ze stroną B i powiedzenie portletowi news-Detail-Portlet, że powinien on wyświetlać element XYZ?

Szybkim i brudnym rozwiązaniem byłobyskonfiguruj łącze docelowe za pomocą trybu edycji portletu listy wiadomości. Ale ma to kilka wad: - złożone portlety mogą mieć kilka docelowych adresów URL, co prowadzi do ogromnych wysiłków konfiguracyjnych administratora portalu - adresy URL mogą nie spełniać schematu, który pozwala na proste wprowadzanie parametrów

Mam na myśli rozwiązanie, ale wymagałoby to ogromnych wysiłków i może zmian w docelowych portletach, co nie zawsze jest możliwe, jeśli korzystasz z portletów innych firm.

Moje rozwiązanie wyglądałoby tak: (draft!)

Portlety rejestrują się w centralnym serwisie za pomocą swoichidentyfikatory portletów i kiedy portlet chce połączyć się z portletem, może wykonać wyszukiwanie na podstawie nazwy symbolicznej. Zmniejszyłoby to ból administratora, ponieważ możliwe jest „automatyczne wykrywanie” portletów. Usługa może również udostępniać interfejs użytkownika do łączenia portletów na podstawie portletu źródłowego i docelowego.

Generowanie adresów URL dla portletów, które mogą byćzmiany mogą być rozwiązane przez wywołanie usługi do portletu, który generuje adres URL jako całość z wprowadzonymi parametrami i zwraca go. W przypadku portletów, których nie możesz zmienić, musisz dodać parametry i mieć nadzieję, że zadziała.: - /

Jakieś sugestie? Czy są prostsze rozwiązania? istniejące rozwiązania?

Dzięki!

Patrick

Odpowiedzi:

1 dla odpowiedzi № 1

O ile wiem specyfikacja portletu nie ma znaczeniazakrywaj to. Nie ma więc przenośnego rozwiązania. W Liferay zawsze możesz użyć własnej biblioteki tagów, która dokładnie odpowiada temu problemowi. Istnieje podobny mechanizm dla portalu Websphere.

Coś można znaleźć tutaj i tutaj

Zwykle starałbym się tego unikać i używać standardowego mechanizmu IPC (publiczne parametry renderowania lub zdarzenia)


0 dla odpowiedzi nr 2

W specyfikacji JSR 286 możliwe jest użycie zdarzeń do komunikacji między portletami. Dla starszych JSR 168 nie ma zatwierdzonego sposobu na to. Jeśli znajdziesz sposób, który działa dla ciebie, użyj go.

Stara książka rozdawana jest za darmo Manning (wymagamy rejestracji). Znajdziesz tam kilka pomysłów.