OminiFaces 的 'o:methodParam' 现在对我有用,如下所示。我该如何使用另一种方式?我不知道我在其中缺少什么。它可以使用<h:commandButton>
和<a4j:jsFunction>
不使用Seam
,Seam
使用时它不使用<a4j:jsFunction>
。
发展环境是
RichFaces 4.
Seam 2.3
OminiFaces 1.2 JBoss 7.1.1
@Name("DataTableBacking")
public class DataTableBacking {
Department[] items = {new Department("AAA", "AAA"), new Department("BBB", "BBB"), new Department("CCC", "CCC")};
public Department[] getItems() {
return items;
}
public void action(Department action) {
System.out.println("Action called with:" + action.getName());
}
}
数据表.xhtml
<h: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:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:richm="http://developmentTutorials.com/java">
<h:body>
<h:form>
<h1>Data Table</h1>
<rich:dataTable id="departmentTable" value="#{DataTableBacking.items}" var="dep" style="width:100%">
<rich:column style="width:100px;text-align:center;">
#{dep.name}
<richm:confirmLink actionBeanMethod="#{DataTableBacking.action(dep)}" render="departmentTable"/>
</rich:column>
</rich:dataTable>
</h:form>
</h:body>
</h:html>
在标签库中,confirmation.xml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:o="http://omnifaces.org/ui"
xmlns:of="http://omnifaces.org/functions"
xmlns:ui="http://java.sun.com/jsf/facelets">
<o:methodParam name="methodParam" value="#{actionBeanMethod}" />
<a4j:commandLink value="delete" onclick="#{rich:component('confirmation')}.show();return false" />
<h:commandButton value="direct" action="#{methodParam}" />
<a4j:jsFunction name="submit" action="#{methodParam}" render="#{render}" />
<rich:popupPanel id="confirmation" width="250" height="150">
<f:facet name="header">Confirmation</f:facet>
<h:panelGrid>
<h:panelGrid columns="1">
<h:outputText value="Are you sure?" style="FONT-SIZE: large;" />
</h:panelGrid>
<h:panelGroup>
<input type="button" value="OK" onclick="#{rich:component('confirmation')}.hide(); submit(); return false" />
<input type="button" value="Cancel" onclick="#{rich:component('confirmation')}.hide(); return false" />
</h:panelGroup>
</h:panelGrid>
</rich:popupPanel>
</ui:composition>