2011-10-25 4 views
0

Привет Я хочу использовать actionListner в commandLink.no call bean при использовании a4j: commandLink и атрибут actionListener

<ui:define name="content"> 
    <a4j:log/> 
    <a4j:form id="home"> 
    <h:commandLink value="bla" actionListener="#{SearchBean.search }"> 
     <f:param name="keyWord" value="hello"></f:param> 
    </h:commandLink> 
//some more JSF 
    </a4j:form> 
</ui:define> 

Мой searchBean код:

public class SearchBean { 

    public void search(ActionEvent e) 
    { 
     String myAttribute = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("keyWord").toString(); 
     System.out.println(myAttribute); 
    } 

} 

Но нет никакого вызова компонента. Я попытался использовать f:attribute и h:commandLink вместо a4j, но это не сработало.

ответ

1

Попытка удалить пустое пространство в конце имени функции ActionListener

0

Где вы заявляете свой bean-компонент? Если вы не выбрали для этого spesific имя, jsf называет его в контексте как опускание первого символа.i.e. # {SearchBean}

+0

странная вещь, что если я удалить ссылку команды из a4j: формы и положить его в час: форма есть вызов метода поиска ... – akub