p:commandLink不起作用,但p:commandButton可以

时间:2014-04-08 18:22:27

标签: jsf primefaces primefaces-mobile

我试图让p:commandLink在primefaces mobile中的p:dataList中工作。

在这个片段中,commandButton进入方法并重定向到另一个视图,但commandLink没有。这是为什么?

<pm:content id="resultsContent">
    <h:form id="resultsForm">
        <p:dataList type="inset" id="studyList" value="#{navigationBean.studies}" var="study">
            <p:commandLink action="{navigationBean.individualStudy}" update=":studyView">#{study.styRefNum} - #{study.shortDesc}</p:commandLink>
            <p:commandButton value="#{study.styRefNum} - #{study.shortDesc}" action="#{navigationBean.individualStudy}" update=":studyView" />
        </p:dataList>
    </h:form>
</pm:content>


@ManagedBean
@ViewScoped
public class NavigationBean {
    public String individualStudy() {
        System.out.println("in individualStudy");
        return "pm:studyView?transition=slide";
    }
}

1 个答案:

答案 0 :(得分:1)

首先,我猜你在写这个问题时输错了,但action p:commandLink错过了前一个#

现在我可以想到两件事要尝试:

process="@this"添加到您的commandLink

<p:commandLink process="@this" action="#{navigationBean.individualStudy}" update=":studyView">

或尝试使用actionListener代替:

<p:commandLink actionListener="#{navigationBean.individualStudy}" update=":studyView">

[UPDATE]

或使用remoteCommand

<p:commandLink onclick="studyFunc()" />
<p:remoteCommand name="studyFunc" update=":studyView" actionListener="#{navigationBean.individualStudy}" />