Mero: Form-Beans, JSP und nested:root

Hallo.
Folgendes Problem. Ich will eine JSP so gestalten, dass Inhalte nur dann angezeigt werden, wenn bestimmte Rechte vorhanden sind.
Die Rechte sind im Form-Bean, dass ich per nested:root einbinde in einer Collection (HashSet) hinterlegt. Die bisherige Lösung sieht so aus, dass ich per nested:iterate über alle Inhalte laufe und mit nested:equal die Rechte überprüfe. Das Problem dabei ist, dass es kein Stück performant ist (jede Menge Iterationen) und, dass das Ergebnis unsortiert ist. Das Recht, dass zuerst kommt wird zuerst angezeigt. Gefällt mir so noch nicht.

Gibt es eine Möglichkeit ohne nested:iterate direkt auf eine Prozedur des Formbeans zuzugreifen?
So etwa in der Form <nested:equal value=FormBean.hasRight("Right")> oder irgend etwas in der Art, dass ich einen Parameter an eine Prozedur des Beans mitgeben kann?
Und wenn ja, wie geht das?

Gruss Mero

  1. moin Mero :)

    Gibt es eine Möglichkeit ohne nested:iterate direkt auf eine Prozedur des Formbeans zuzugreifen?
    So etwa in der Form <nested:equal value=FormBean.hasRight("Right")> oder irgend etwas in der Art, dass ich einen Parameter an eine Prozedur des Beans mitgeben kann?
    Und wenn ja, wie geht das?

    mit Struts geht das soweit ich weiss nicht. (wenn doch - lasst es mich wissen)
    aber du könntest die Struts-Welt verlassen und JSP-Funktionalität benutzen.

    sicherlich legst du unter Struts eine Variable der FormBean an? Falls du dies ohne type="" gemacht hast, musst du hier nur noch den Package- und Klassennamen angeben.
    so zum Beispiel: <bean:define id="bean" type="com.my.package.FormBean"/>
    später kannst du dann mit jsp auf diese bean zugreifen: <%boolean hasRight=bean.hastRight("Right");%>

    Näheres kann ich nur ausführen, wenn du Details blicken läßt ;)

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. moin Mero :)

      mit Struts geht das soweit ich weiss nicht. (wenn doch - lasst es mich wissen)
      aber du könntest die Struts-Welt verlassen und JSP-Funktionalität benutzen.

      sicherlich legst du unter Struts eine Variable der FormBean an? Falls du dies ohne type="" gemacht hast, musst du hier nur noch den Package- und Klassennamen angeben.
      so zum Beispiel: <bean:define id="bean" type="com.my.package.FormBean"/>
      später kannst du dann mit jsp auf diese bean zugreifen: <%boolean hasRight=bean.hastRight("Right");%>

      Näheres kann ich nur ausführen, wenn du Details blicken läßt ;)

      liebe Grüße aus Berlin
      lina-

      Prima. Es geht. bean:define kannte der zwar bei mir nicht, aber wenn man in der JSP mit jsp:useBean arbeitet kann man auch so darauf zugreifen. Und man braucht es noch nicht einmal vorher in der config als bean zu deklarieren. Ich musste zwar das Befüllen des Beans aus der action rauswerfen und in die jsp verschieben, aber damit kann ich leben.
      Vielen Dank für die Hilfe.

      Gruss Mero

      1. Jetzt hab ich auch das bean:define gefunden. Würde also auch funktionieren. Hatte einfach vergessen die taglib einzubinden. *schäm*