Struts 2 - Zugriff auf verschiedene Eigenschaften auf dem ValueStack die gleichen Namen teilen

StackOverflow https://stackoverflow.com/questions/2939005

  •  05-10-2019
  •  | 
  •  

Frage

Struts 2 werden alle Eigenschaftsnamen während Ansicht Rendering gegen das Top-Objekt in der ValueStack zuerst lösen. Aber wie kann man eine Eigenschaft mit dem gleichen Namen auf dem Objekt zugreifen auf dem Stapel senken?

Beispiel:

Lassen Sie uns sagen, dass ich eine Action-Klasse namens MyAction haben und es hat eine eine LogDate Eigenschaft. Nach Ansicht wiedergegeben, nachdem diese Aktion aufgerufen wird, gibt es diese:

<s:iterator value="users" status="itStatus">
  <s:property value="logDate"/>
</s:iterator>

Nun stellen Sie ein Benutzerobjekt auch eine LogDate Eigenschaft hat. Während die Iteration 2 Struts immer drücken Sie das aktuelle Benutzer-Objekt an die Spitze des ValueStack alle Eigenschaftsnamen dagegen effektiv zu lösen. Aber was, wenn ich wollte, den Zugang LogDate von der Aktion? Was ist der richtige Weg, um dies?

zu tun
War es hilfreich?

Lösung

Sie können einen Index Blick auf einen Unterstapel verwenden. Beispielsweise: [0] .logDate würde die Suche an der Haltestelle des Stapels beginnen und die LogDate auf dem Benutzerobjekt finden. [1] .logDate würde die Suche einer Ebene tiefer starten und die LogDate auf der Action-Klasse finden. Dieses OGNL (siehe Abschnitt direkt über dem Zugriff auf statischen Eigenschaften Header) hat etwas mehr Detail und hier ist eine andere Erklärung .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top