Domanda

Sto scrivendo la mia prima applicazione basata su portlet (per Liferay, ma la soluzione deve essere contenitore agnostici) e mi chiedo come le persone a risolvere per fornire collegamenti per l'utente che "portano" per diversi portlet (magari su diversi "pagine" nel portale).

Mentre si può facilmente avere diverse modalità di visualizzazione all'interno del vostro portlet, come si può creare un collegamento a un altro portlet e (forse) anche passare parametri insieme?

Non sto parlando di comunicazione pianura tra portlet, è il vero pageflow che mi interessa.

Esempio: Hai pagina A con un portlet che visualizza un elenco di notizie. Allora avete pagina B che si trova nel modo configurato Vorrei una della notizia singolo da visualizzare (ad esempio diversi portlet intorno ad esso)

C'è una soluzione generica per collegare alla pagina B e dire alla notizia-Detail-portlet che dovrebbe mostrare voce XYZ?

La soluzione rapida e sporca sarebbe quello di configurare il link di destinazione tramite la modalità di modifica delle notizie-list-portlet. Ma questo ha diversi svantaggi: - portlet complessi possono avere diversi URL di destinazione che porta agli sforzi di configurazione di massa per l'amministratore portale - gli URL non possono seguire uno schema che permette l'iniezione semplice parametro

ho una soluzione in mente, ma ciò richiederebbe enormi sforzi e forse cambiamenti nel portlet mirate, che non è sempre possibile se si utilizza 3rd portlet partito.

La mia soluzione sarebbe simile a questa: (! Bozza)

Portlet registrano ad un servizio centrale con i loro ID portlet e quando un portlet vuole collegare ad un portlet si può fare una ricerca in base a un nome simbolico. Ciò alleviare il dolore per l'amministratore, in quanto è possibile "auto scoprire" portlet. Il servizio può anche fornire un'interfaccia utente per portlet fili basato su origine e destinazione portlet.

La generazione URL per portlet che possono essere cambiamenti può essere risolto tramite chiamata di servizio al portlet che genera l'URL complessivamente con parametri iniettato e la restituisce. Per portlet che non si può cambiare è necessario aggiungere i parametri e sperare che funzioni. : - /

Qualche suggerimento? Sono soluzioni là più semplici? soluzioni esistenti?

Grazie!

Patrick

È stato utile?

Soluzione

Per quanto ne so Portlet Specification non copre questo. Quindi non v'è alcuna soluzione portatile. Per Liferay è sempre possibile utilizzare libreria di tag personalizzati loro che si propone esattamente questo problema. C'è meccanismo simile per WebSphere Portal.

Qualcosa può essere trovato qui e qui

In generale vorrei cercare di evitare questo e utilizzare meccanismo standard IPC (pubblico renda parametri o eventi)

Altri suggerimenti

Per JSR 286 specifica è possibile utilizzare gli eventi per la comunicazione inter-portlet. Per i più anziani JSR 168, non c'è un modo approvato per farlo. Se si trova un modo che funziona per voi, quindi utilizzarlo.

C'è un vecchio libro dato via libera da Manning (richiesta la registrazione). Potete trovare alcune idee lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top