2012-03-29 5 views
1

h: commandLink actionlistener wird nicht aufgerufen, wenn f: ajax und ui: repeat Wenn ich auf den Link klicke, muss ich einen Parameter übergeben in der "onload" -Methode der Bean und aktualisiere die Panelgruppe "assist". Es funktioniert gut, wenn ich den commandButton, aber nicht mit commandLink benutze.h: commandLink actionlistener wird nicht aufgerufen, wenn f: ajax und ui: repeat

<h:panelGroup id="assist" styleClass="tabbed-panel-vertical"> 
<ul id="assistlink" class="tabbed-panel-vertical-tabs"> 
    <ui:repeat var="assistants" 
     value="#{permissions.repAssistants}"> 
     <li><h:commandLink 
          actionListener="#{permissions.onload}" 
      value="#{assistants.name}" 
       styleClass="#{permissions.selectedAssistant==assistants.userId ? 'selected' : ''}"> 
       <f:ajax 
        render=":permissionsform:assist :permissionsform:permissionsContent" 
        execute="@this"> 
        <f:attribute name="assistantId" 
         value="#{assistants.userId}" /> 
       </f:ajax> 
      </h:commandLink></li> 
    </ui:repeat> 
</ul> 

`public void onload(ActionEvent event) { 
    Long userId = Long.valueOf(541);// user.getUserId(); 
    Long assistantId = (Long) event.getComponent().getAttributes().get("assistantId"); 
    System.out.println("User " + assistantId); 
    }` 
+0

Bitte beschreiben Sie ausführlich, wie genau es scheitert. Bitte erwähnen Sie genaue JSF Impl/Version. – BalusC

+0

Jsf 2.0, mojarra impl. Die Methode "onload" wird niemals aufgerufen, wenn ich auf den Befehlslink klicke. Wenn ich den Befehls-Link durch eine Befehlsschaltfläche ersetze, sehe ich, dass die Methode aufgerufen wird. Ausgabe von command erzeugt: PATRICK CARROLL Ausgang mit Befehlsverbindung erzeugt: Smith

+0

"JSF 2.0" ist eine Spezifikation. Welche Mojarra-Version verwendest du? Welche Browser hast du benutzt? Gibt es Fehler in der JavaScript-Konsole, wenn Sie auf den Link klicken? Wie sieht die Ajax-Anfrage/-Antwort aus? Übrigens funktioniert der '' Ansatz nicht so, wie Sie es erwarten würden, aber das ist ein anderes Problem. – BalusC

Antwort

3

sich nach den Kommentaren:

@BalusC Its javascript issue. Thanks for directing me to look at the javascript console. JS error "Uncaught ReferenceError: mojarra is not defined"

Stellen Sie sicher, dass Sie ein <h:head> Tag in Ihrem Master-Template statt <head> haben. Auf diese Weise kann JSF automatisch die notwendige JavaScript-Datei für die Ajax-Magie einbinden.

+1

Vielen Dank. Wie immer BalusC zur Rettung. – Smith

+0

Gern geschehen. – BalusC

Verwandte Themen