Hakan: DIV Style speichern

Hallo Leute,

ich benötige mal wieder Hilfe - bin total Planlos.

Problem:
Ich habe eine Seite mit verschiedenen DIV Elementen. Diese Elemente werden per JS dynamisch, sprich man kann ihre Position bzw. ihre Breite verändern.

Jetzt möchte ich, wenn der User sich ausloggt, die Positionen bzw. die neu eingestellten Breiten (style: width!) speichern, damit bei einem neuen Anmelden, die Styles wieder hergestellt werden.

Ich hab absolut keinen Plan, wie ich von einer JSF-Seite, sprich von JAVA heraus, die Styles der einzelnen DIV-Elemente abgreifen kann.

Hoffe, jemand hat eine gute Idee.

Danke schon mal im Voraus.

Gruß, Hakan

  1. Jetzt möchte ich, wenn der User sich ausloggt, die Positionen bzw. die neu eingestellten Breiten (style: width!) speichern, damit bei einem neuen Anmelden, die Styles wieder hergestellt werden.

    Ich hab absolut keinen Plan, wie ich von einer JSF-Seite, sprich von JAVA heraus, die Styles der einzelnen DIV-Elemente abgreifen kann.

    Direkt geht das nicht. JSF läuft serverseitig. Wenn der Benutzer im Browser etwas auf der Seite verändern kann, bekommt der Server davon erst einmal gar nichts mit. Aber das lässt sich natürlich ändern:

    Damit der Server davon weiß, musst du die Daten vom Client zum Server übermitteln. Am einfachsten über ein HTTP-POST-Request. Das initiierst du in deinem JavaScript, welches die Style-Änderung der Elemente erlaubt. Z.B. mit XMLHttpRequest (»Ajax«). Serverseitig nimmst du diese Daten entgegen, speicherst sie und verwendest sie beim nächsten Einloggen als Startwerte.

    Das ganze ginge natürlich auch ohne XMLHttpRequest, indem du einfach ein Formular mit den Werten erzeugst (falls nötig unsichtbare Eingabefelder), welches der Benutzer nach dem Editieren konventionell absendet.

    Mathias

    1. Sorry, vielleicht war meine Beschreibung nicht korrekt.
      Wenn der User sich ausloggt, dann erfolgt bereits eine User-Aktion, dass Serverseitig Methoden aufruft. Soweit ist es auch kein Problem.

      Jetzt muss ich aber Serverseitig auf die Styles bestimmter DIV-Elemente zugreifen und da happert es ja.

      Ich müsste von der JAVA-Methode heraus (MannagedBean-Methode) auf das Form zugreifen und darin die DIV-Elemente ermitteln, die die id=xyz haben und von dieserm DIV-Element (mit der id=xyz) die aktuellen Styles ermitteln.

      Nur weiß ich eben nicht, wie ich das umsetzen kann.

      1. Sorry, vielleicht war meine Beschreibung nicht korrekt.

        Doch, ich glaube schon verstanden zu haben, was du vorhast.

        Wenn der User sich ausloggt, dann erfolgt bereits eine User-Aktion, dass Serverseitig Methoden aufruft. Soweit ist es auch kein Problem.

        Jetzt muss ich aber Serverseitig auf die Styles bestimmter DIV-Elemente zugreifen und da happert es ja.

        Richtig. Das wird aber nicht gehen.
        Deshalb musst du das, was du nur clientseitig tun kannst, auch clientseitig tun. Dort hast du die Daten. Der Server will sie. Also musst du sie dem Server übermitteln. Z.B. indem du sie in das Formular hineinschreibst.

        Ich müsste von der JAVA-Methode heraus (MannagedBean-Methode) auf das Form zugreifen und darin die DIV-Elemente ermitteln, die die id=xyz haben und von dieserm DIV-Element (mit der id=xyz) die aktuellen Styles ermitteln.

        Du kannst auf der Server nur auf die Daten zugreifen, die dir mit dem Formular geschickt wurden. Das sind die, die in den Formularfeldern drinstehen. Dir wird nicht das ganze Dokument gesendet, schon gar nicht mit seinen aktuellen Styles!

        Nur weiß ich eben nicht, wie ich das umsetzen kann.

        Wie es geht, habe ich beschrieben: Indem du die Styles CLIENTSEITIG mit JAVASCRIPT ausliest und in Formularfelder schreibst (oder gleich mit XMLHttpRequest im Hintergrund zum Server sendet). Nur so kann dein Java auf dem Server darauf zugreifen.

        Der serverseitige Teil dieser Lösung ist trivial und den beherrscht du wahrscheinlich schon: Das Verarbeiten von Formulardaten mit Java.

        Den clientseitigen Teil musst du mit JavaScript lösen, siehe etwa:

        http://de.selfhtml.org/javascript/objekte/forms.htm
        http://de.selfhtml.org/javascript/objekte/elements.htm

        Mathias

        1. Denke, verstehen zu haben, was Du meinst.....klingt ja auch logisch!

          Danke Dir vorerst. Muss mir das ganze mal in Ruhe anschauen, wie ich das in der Form lösen kann.

          Merci,

          Hakan

    2. @@molily:

      nuqneH

      Wenn der Benutzer im Browser etwas auf der Seite verändern kann, bekommt der Server davon erst einmal gar nichts mit.

      Muss er eigentlich auch nicht. Man könnte die Werte auch per JavaScript in einem Cookie speichern und beim nächsten Einloggen per JavaScript wieder auslesen und anwenden.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Hi,

        Wenn der Benutzer im Browser etwas auf der Seite verändern kann, bekommt der Server davon erst einmal gar nichts mit.

        Muss er eigentlich auch nicht. Man könnte die Werte auch per JavaScript in einem Cookie speichern

        Dann bekommt der Server es trotzdem mit :-P

        und beim nächsten Einloggen per JavaScript wieder auslesen und anwenden.

        Du hype-st doch sonst gerne die neuesten Techniken, wieso verweist du dann hier nicht auf localStorage?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?