<h:form prependId="false">
<p:dialog modal="true">
<p:commandLink ajax="true" value="ok" actionListener="Bean.listenerMethod"/>
</p:dialog>
</h:form>
我在表单中也有一些其他控件。单击链接时,未触发侦听器。可能是什么问题?请帮忙!
答案 0 :(得分:2)
您需要将其声明为EL方法表达式,而不是普通字符串。
actionListener="#{Bean.listenerMethod}"
可以肯定的是,#{Bean}
必须是一个有效的托管bean,其托管bean名称"Bean"
又包含以下方法
public void listenerMethod(ActionEvent event) {
// ...
}
其中ActionEvent
来自javax.faces
包,而不是java.awt
包。
如果仍然无效,则由其他原因引起。例如。表单已嵌套,rendered
属性已评估为false
,等等。有关概述,请参阅this answer。
答案 1 :(得分:1)
你应该使用<h:commandLink action="... />
而不是<p:commandLink actionListener="... />
示例:
<h:commandLink id="elimina"
action="#{listaBonificiModel.eliminaSelezionato()}"
update="@(form)" oncomplete="PF('bonificoDialog').hide()"
value ="Elimina" />
答案 2 :(得分:0)
尝试
<h:form id="mainform">
__________
__________
<p:dialog id="test" widgetVar="Testing">
<h:form>
<h:panelGrid columns="1">
_________
_________
</h:panelGrid>
<p:commandLink ajax="true" update="mainform" process="@all" value="ok" actionListener="#{Bean.listenerMethod}" oncomplete="Testing.hide()"/>
</h:form>
</p:dialog>
</h:form>
谢谢