Hakan: Div-Tag mit onclick

Hallo Leute,

eine Frage, bei dem ich nicht ganz weiterkomme:

Ich benutze JSF2.0 und benutze im Code auch HTML-Tags, wie z.B. DIV-Tags.
Das liegt auch daran, dass ich nicht gefunden habe, welche JSF-Komponente eigentlich DIV-Tags generiert. Egal!

Mein Problem ist, dass ich bei dem Div-Tag bei dem Attribut onclick (oder onmousedown, etc.) eine Bean-Methode aufrufen möchte.

Beispiel:

<div class="divtab"
    onmousedown="alert(param1);"
    onclick="#bean.methode('param2')">

...blablabla...

</div>

bei onmousedown wird eine js-Funktion aufgerufen....funktioniert auch!
bei onclick will ich eben eine Bean-Methode aufrufen. Das funktioniert leider nicht.

Irgendwelche Vorschläge?

Vielen Dank schon mal im voraus!

Gruß, Hakan

  1. Kleiner Tippfehler:

    Beam-Methode wird nicht wie oben aufgefrufen, sondern syntaktisch korrekt mit
    #{bean.methode('param2')}

    Ist aber nur ein Tippfehler. Das Problem besteht weiterhin!

    Gruß, Hakan

    1. Hi,

      mach dir den Unterschied zwischen Server und Client klar.

      Am Server wird (bei dir) Java ausgeführt welches die Dateien interpretiert und daraus HTML-Code erzeugt.
      Dieser wird an den Client gesendet.

      Am Client gibts kein Java (Java-Applets mal außen vor), und auch keine deiner Beans.
      Es gibt nur JavaScript.

      JavaScript != Java

      ~dave

      1. Hallo Dave,

        erst mal danke für Deine Antwort.
        Eigentlich weiß ich das ja auch, aber irgendwie will ich das wohl nicht ganz wahr haben :-)

        Aber vielleicht kennst Du ein workaround, da mich das schon seit zwei Tagen ohne Ende ärgert.
        Eigentlich hab ich ein TabPanel-Menu. Wenn nun auf die unterschiedlichen Tabs geklickt wird, wird deren Content angezeigt und das Style wird bisschen verändert. Läuft natürlich alles auf dem Client über JS.
        Nun möchte ich aber, das aktuell aktive Tab in einem Bean speichern. Und ich dachte, wenn ich ein auf dem div-tag, welches das Tab-Element repräsentiert, ein onclick mit bean-methode aufrufe, gehts.....tja, leider nicht!

        Was mach ich jetzt??

        Gruß, Hakan

        1. Hi,

          Was mach ich jetzt??

          Diese Einstellung:

          Eigentlich weiß ich das ja auch, aber irgendwie will ich das wohl nicht ganz wahr haben :-)

          ändern/ablegen.

          Und dich dann informieren, welche Möglichkeiten es gibt, vom Client aus mit dem Server zu kommunizieren - AJAX ist eine, wenn man das aus JavaScript heraus machen möchte.

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        2. Nun möchte ich aber, das aktuell aktive Tab in einem Bean speichern. Und ich dachte, wenn ich ein auf dem div-tag, welches das Tab-Element repräsentiert, ein onclick mit bean-methode aufrufe, gehts.....tja, leider nicht!

          Was mach ich jetzt??

          Darüber nachdenken, wie der Client mittels JavaScript mit dem Server kommunizieren kann.

          Einstiegspunkt: Das Protokoll, über welches Browser und Webserver miteinander reden, lautet HTTP.

          Ja, man kann in JavaScript HTTP-Anfragen erzeugen, absenden und sogar den Rückgabewert verarbeiten.

          Dazu gibt es verschiedene Methoden, die üblichste ist das XMLHttpRequest-Objekt.

          Damit kannst du dem Server den Namen/die Nummer des aktuellen Tabs übertragen, sodass er sie dauerhaft speichert.

          Zum Beispiel mit einem POST-Request.

          Mathias