Announcement

Collapse
No announcement yet.

JSF InputText binding funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JSF InputText binding funktioniert nicht

    Hallo!

    Ich habe in meiner Seite das folgende element:
    <h:inputText id="channelname" binding="#{serverBacking.channelName}"/>

    in der backing bean "serverBacking" das folgende Feld mit Getter/Setter:
    private HTMLInputText channelName;

    ich komme in meine methode über einen <h:CommandButton.../> der nicht immediate ist. channelName wird auch gesetzt aber das value darin ist immer null, egal ob ich was eingebe oder nicht. Habe es auch schon mit einem einfachen UIInput versucht, aber das gleiche Ergebnis. wenn ich stattdessen ein String-member benutze und value statt binding dann ist es null, wird aber beim neuen aufbauen der seite mit dem eben eingegebenen inhalt dargestellt. ich find einfach den fehler nicht, kann mir hier vielleicht jemand helfen?

    Danke im voraus!

    P.S.: JSF 1.2

  • #2
    Ich vermute mal, du siehst in der Methode setChannelName(HtmllInputText) den Value nicht? Dafür hätte ich eine Erklärung...

    Comment


    • #3
      Originally posted by ramon98 View Post
      Ich vermute mal, du siehst in der Methode setChannelName(HtmllInputText) den Value nicht? Dafür hätte ich eine Erklärung...
      Nein da hast du mich falsch verstanden, den Setter betrachte ich garnicht, das HTMLInputText wird gesetzt. Ich meine das value eben dieses Objektes ist null wenn die eigentliche action (durch commandButton oder ähnliches) aufgerufen wird.

      Comment


      • #4
        Ok, noch mal langsam:

        Wenn du anstatt binding="channelName" ein value="channelName" nimmst und den Typ von channelName auf String setzt, wird deine setChannelName(String)-Methode nicht aufgerufen?

        Comment


        • #5
          korrekt, ich lande nach dem klick auf dem button direkt in meiner action.

          Comment


          • #6
            So spontan habe ich keine Idee. Poste doch mal die relevanten Auszüge aus:

            - deiner Seite (form-tag)
            - deine faces-config.xml (bean declaration)
            - deinen Bean-Code (getter und setter)

            Entweder kommt das Framework ja nicht an deine Bean oder an den Setter ran.

            Comment


            • #7
              <h:form>
              ...
              <h:inputText id="channelname" label="#{msg.editChannels_newChannelName}" value="#{serverBacking.channelName}"/>

              <h:commandButton class="button" action="#{serverBacking.newChannel}" value="#{msg.editChannels_button_newChannel}" immediate="true"/>
              ...
              </h:form>


              public class ServerBacking
              {
              private String channelName;

              public String newChannel()
              {
              return null;
              }

              public String getChannelName()
              {
              return channelName;
              }

              public void setChannelName(String channelName)
              {
              this.channelName = channelName;
              }
              }



              <?xml version="1.0" encoding="windows-1252"?>
              <!DOCTYPE faces-config PUBLIC
              "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
              "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
              <faces-config xmlns="http://java.sun.com/JSF/Configuration">

              <managed-bean>
              <managed-bean-name>serverBacking</managed-bean-name>
              <managed-bean-class>eu.genewo.geneorder.web.backing.mumble.Serve rBacking</managed-bean-class>
              <managed-bean-scope>request</managed-bean-scope>
              </managed-bean>

              </faces-config>


              hoffe das reicht

              Comment


              • #8
                Was passiert, wenn du das immediate="true" aus dem commandButton entfernst?

                Und bau' mal ein <h:messages/> mit ein, vielleicht kommen da irgendwelche Fehlermeldungen.
                Zuletzt editiert von ramon98; 19.02.2010, 17:35.

                Comment


                • #9
                  OMG, wie konnte ich denn das immdiate übersehen!?!? ich schätze mal das ist das problem, ich werds ausprobieren!

                  die messages sind drin, ich habe nur einen ausschnitt gepostet da das ganze dank facelets und templating etwas viel code zum posten gewesen wäre. Danke erstmal, ich meld mich wenn ich's probiert hab!

                  Comment


                  • #10
                    Zu meiner Schande muss ich sagen das immediate war schuld :-)

                    Danke dir ramon98!

                    Comment

                    Working...
                    X