commandLink不会调用动作侦听器,但commandButton可以正常工作

Ark*_*uri 5 commandlink jsf-2

我想通过Facelets的链接调用一个方法:

我的Facelets代码如下:

<h:commandButton value="A" actionListener="#{customerData.searchedCustomerListA}" />

<h:commandLink value="A" actionListener="#{customerData.searchedCustomerListA}"/>
Run Code Online (Sandbox Code Playgroud)

支持bean代码如下:

public void searchedCustomerListA(ActionEvent ae){
    customerName = "A";
    leftCustomerListAvailable.clear();
    if(customerDataBean.getSearchedCustomerList(customerName)!= null)
        leftCustomerListAvailable =customerDataBean.getSearchedCustomerList("A");
}
Run Code Online (Sandbox Code Playgroud)

相同的代码正在起作用<h:commandButton>但不起作用<h:commandLink>.这是怎么造成的,我该如何解决?

nen*_*eni 0

试试这个,这很有效。

    <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

<h:form>

    <h:commandLink type="button" action="#{testBean.tsetLink}"> 
          <h:outputText value="A" />
    </h:commandLink>

</h:form>
</html>
Run Code Online (Sandbox Code Playgroud)

托管Bean

@ManagedBean
@RequestScoped
public class TestBean {

    public void tsetLink(){
    System.out.println("Link clicked!!!!!!!!!!!!");
    }
} 
Run Code Online (Sandbox Code Playgroud)