2013-06-10 7 views
5

Ich bin ein Anfänger mit Portlets, und ich verstehe nicht den Unterschied zwischen request.setAttribute und response.setRenderParameter (für eine Aktion). Beide speichern ein Attribut in der Anfrage und ermöglichen den Zugriff danach. Ich denke speziell über die Übertragung zwischen einer processAction und dem Render, der gerade nach der Aktionsmethode ist.Portlets - Unterschiede zwischen setAttribute und setRenderParameter

Ich weiß, dass mit SetRenderParameter können wir nicht ein komplexes Objekt "auf Lager", aber wenn ich nur eine Zeichenfolge übertragen möchte, welche sollte ich verwenden? In diesem Fall sollten wir die setRenderParameter Methode oder die setAttribute Methode verwenden?

Antwort

7

Nun, man setzt ein Attribut auf eine Anfrage. Der andere legt einen Parameter für die Antwort fest. Sie sind offensichtlich verschiedene Objekte.

response.setRenderParameter ist nützlich, wenn Sie basierend auf Ihrer Aktion verschiedene Rendermethoden aufrufen möchten. Stellen Sie sich beispielsweise vor, dass Ihre Aktionsmethode eine E-Mail sendet und Sie dem Benutzer eine andere Ansicht über Erfolg und Misserfolg zeigen möchten. In diesem Fall würden Sie so etwas wie dies in Ihrer Action

if(sentOK){ 
    response.setRenderParameter("result", "success"); 
}else{ 
    response.setRenderParameter("result", "fail"); 
} 

Und dann haben zwei RenderMapping Methoden tun:

@RenderMapping(params = "result=success") 
public String success(){ 

@RenderMapping(params = "result=fail") 
public String fail(){ 
+0

Perfect, danke! – user2472508

Verwandte Themen