我试图让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";
}
}
答案 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}" />