2012-03-29 2 views
1

h: commandLink actionlistener не вызывается при использовании с f: ajax и ui: repeat Когда я нажимаю ссылку, мне нужно передать параметр в методе «onload» компонента и обновите панель «assist». Он отлично работает, когда я использую commandButton, но не с commandLink.h: commandLink actionlistener не вызывается при использовании с f: ajax и 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

Просьба подробно описать, как именно он терпит неудачу. Пожалуйста, укажите точную версию/версию JSF. – BalusC

+0

Jsf 2.0, mojarra impl. Метод «onload» никогда не вызывается, когда я нажимаю на командную ссылку. Когда я заменяю commandLink на commandButton, я вижу, что метод вызывается. выход генерируется из commandLink: PATRICK CARROLL вывод, сгенерированный с командной ссылке: <входной тип = "представить" Name = "j_idt13: 0: j_idt15" значение = "ПАТРИК CARROLL" класс = "выбранный" /> – Smith

+0

"JSF 2.0" является спецификация. Какую версию Mojarra вы используете? Какие браузеры вы использовали? Есть ли ошибки в консоли JavaScript при нажатии на ссылку? Как выглядит запрос/ответ ajax? Кстати, подход '' не работает так, как вы ожидали, он будет работать, но это другая проблема. – BalusC

ответ

3

В соответствии с комментариями:

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

Убедитесь, что у Вас есть <h:head> тег в вашем основном шаблоне вместо <head>. Таким образом, JSF сможет автоматически включить необходимый файл JavaScript для магии Ajax.

+1

Большое вам спасибо. Как всегда BalusC на помощь. – Smith

+0

Добро пожаловать. – BalusC