如何在运行时有条件地包含 jsf facelets 文件?所需的示例功能是
if ( add button click) {
ui:include src="Add.xhtml"
}
if ( update button click) {
ui:include src="Update.xhtml"
}
上面的语法只是指示性的......
Mojarra 2.1.1 / Apache Tomcat 7.0.22 / PrimeFaces 3.4
如何在运行时有条件地包含 jsf facelets 文件?所需的示例功能是
if ( add button click) {
ui:include src="Add.xhtml"
}
if ( update button click) {
ui:include src="Update.xhtml"
}
上面的语法只是指示性的......
Mojarra 2.1.1 / Apache Tomcat 7.0.22 / PrimeFaces 3.4
ui:include
没有rendered
属性,因此您必须将其封装在其他组件中。此外,您将在单击按钮时在服务器上设置一些属性。
<h:form>
<p:commandButton value="Add" update=":includeContainer">
<f:setPropertyActionListener value="add" target="#{myBean.action}"/>
</p:commandButton>
<p:commandButton value="Update" update=":includeContainer">
<f:setPropertyActionListener value="update" target="#{myBean.action}"/>
</p:commandButton>
</h:form>
<h:panelGroup id="includeContainer">
<h:panelGroup rendered="#{myBean.action == 'add'}">
<ui:include src="add.xhtml"/>
</h:panelGroup>
<h:panelGroup rendered="#{myBean.action == 'update'}">
<ui:include src="update.xhtml"/>
</h:panelGroup>
</h:panelGroup>
在支持 bean 中,您将拥有 getter 和 setter:
public void setAction(String action) {
this.action = action;
}
public String getAction() {
return action;
}
我重新发布了 partlov 的答案,因为有一些错误,我纠正了这个错误并放入了这个 pos,并祝贺 partlov 得到了很好的答案
我首先补充你的答案,这是一个带有素数面孔的 xhtml 页面,如果你想使用 ap:添加这个框架或其他。
如果您不下载此框架,请在此处下载 为 JSF 下载主要框架
并以此方式进口
xmlns:p="http://primefaces.org/ui"
选择.XHTML
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<p:commandButton value="Add" update="panel">
<f:setPropertyActionListener value="add" target="#{myBean.action}"/>
</p:commandButton>
<p:commandButton value="Update" update="panel">
<f:setPropertyActionListener value="update" target="#{myBean.action}"/>
</p:commandButton>
<h:panelGroup id="panel">
<h:panelGroup rendered="#{myBean.action == 'add'}">
<ui:include src="headerLogin.xhtml"/>
</h:panelGroup>
<h:panelGroup rendered="#{myBean.action == 'update'}">
<ui:include src="Pajax.xhtml"/>
</h:panelGroup>
</h:panelGroup>
</h:form>
</h:body>
下一步是创建一个类 myBean 并使用此字符串来选择要呈现 myBean.java的 UI
在 bean 中使用这个导入
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
并在课堂上使用这条鳕鱼
public class myBean {
String action;
public void setAction(String action) {
this.action = action;
}
public String getAction() {
return action;
}
}
但记得把这条线放在一个班级里
@ManagedBean
@SessionScoped