/
Portale und Portlets
Portale und Portlets
Caching (JSR-286)
Varianten des Caching
Expiration Cache
- enthält ein einfaches "Verfallsdatum"
- Output wird dann neu erzeugt
Setzen der Ablaufzeit auf 60 Sekunden, Inhaltz der Caches wird nicht mit anderen Usern geteilt
... <portlet> ... <expiration-cache>60</expiration-cache> <cache-scope>private</cache-scope> ... </portlet> ...
Validation Cache
- Erweiterung des #Expiration Cache
- es wird zusätzlich ein sogenannter Validation Token gesetzt
Nutzen es Validation-Caches
protected void doView(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException{ ... //Pruefung auf Validation Token if(request.getETag() != null) { if(checkMarkupStillValid(request.getETag())){ //Markup immer noch gueltig response.getCacheControl().etExpirationTime(30); response.getCacheControl().setUseCachedContent(true); return; } } //Cache ausgelaufen bzw. kein ETag gesetzt --> Markup erzeugen response.getCacheControl().setETag(etagID); response.getCacheControl().setExpirationTime(30); PrintWriter writer=response.getWriter(); writer.println("Hallo Caching"); ... }
Unterstützte Annotations
@RenderMode
- ermöglicht es, einen beliebigen Methodennamen anstelle der doView-Methode zu wählen
Nutzen von @RenderMode
@RenderMode(name="view") public void meineTolleRenderMethode(RenderRequest request, RenderResponse response) throws PortletException, IOException { ...}
@ProcessAction
- dient als Annotation für die ActionRequest-Verarbeitung
Nutzen von @ProcessAction
public void doView(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException { ... PortletURL aActionUrl=response.createActionURL(); aActionUrl.setParameter(ActionRequest.ACTION_NAME,"meineTolleActionMethode"); ... } @ProcessAction(name="meineTolleActionMethode") public void processMeineTolleAction(ActionRequest request, ActionResponse response) throws PortletException, IOException { ...}
@ProcessEvent
- dient der Event-Unterstützung
Quelle
- Java-Magazin 3/2009, Seite 30-32