Announcement

Collapse
No announcement yet.

h:button zu früh initialiserte parameter

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

  • h:button zu früh initialiserte parameter

    HI, hab wieder ne Frage zu JSF 2

    Ich versuche grad eine Suchfunktion zu schreiben und will die Suche durch faram "Bookmarkable" gestalten.

    HTML Code:
    <h:form>
       <h:inputText value="#{videoSearchBean.songName}">
           <f:ajax event="change" />
      </h:inputText>
       <h:inputText value="#{videoSearchBean.artistName}">
           <f:ajax event="change" />
      </h:inputText>
    </h:form>
    
    <h:button outcome="goToVideoSearchResults" value="Search" >
       <f:param name="songName" value="#{videoSearchBean.songName}"/>
       <f:param name="artistName" value="#{videoSearchBean.artistName}"/>
    </h:button>
    Das Problem ist, dass immer der Parameter der vohrigen Anfrage initialisert wird.
    Gibt es eine Möglichkeit dem h:button "zu sagen":
    "Warte bist die Eingabe gemacht wird und generiere erst dann die URL" ?

    Für andere Möglichkeiten bin ich auch sehr dankbar.

  • #2
    Gibt es eine Möglichkeit dem h:button "zu sagen":
    "Warte bist die Eingabe gemacht wird und generiere erst dann die URL" ?
    Die Seite wurde doch schon gerendert und an den Client gesandt. Wei wilst du da serverseitig noch was ändern?
    Christian

    Comment


    • #3
      hmm anscheinend muss ich nur den button nach der Sucheingabe neu rendern.
      Naja manche sind die plausibelsten und einfachsten Lösungen die schwersten

      Comment


      • #4
        hmmm hab nun gemerkt, das manchmal (wenn ma sehr schnell eintippt und auf das Button drück) die parameter doch zu früh abgschickt werden.


        HTML Code:
        <h:form>
        
        <h:outputLabel for="artist" value="#{msg.artist}" />
        <h:inputText value="#{videoSearchBean.artistName}" >
          <f:ajax event="blur" render="searchButton"/>
        </h:inputText>
        
        <h:outputLabel for="song" value="#{msg.song}" />
        <h:inputText value="#{videoSearchBean.songName}" >
          <f:ajax event="blur" render="searchButton" />
        </h:inputText>
        
        <h:button   id="searchButton" outcome="goToVideos" value="#{msg.search}"
          <f:param name="artistName" value="#{videoSearchBean.artistName}"/>
          <f:param name="songName" value="#{videoSearchBean.songName}"/>
        </h:button>
        
        </h:form>
        Manchmal funktionierts sehr gut, manchmal aber auch net....

        Comment

        Working...
        X