有条件地包括JSF viewParam
我试图在JSTLs有条件地包括JSF viewParam,jsf,jsf-2,jstl,Jsf,Jsf 2,Jstl,我试图在JSTLs的JSF页面中有条件地包含和标记,因为我不想在每个JSF页面中手动指定viewParams。不幸的是它不起作用 元数据\u include.xhtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http:
的JSF页面中有条件地包含
和
标记,因为我不想在每个JSF页面中手动指定viewParams。不幸的是它不起作用
元数据\u include.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<f:metadata>
<f:viewParam name="from" value="#{loginBean.from}" />
<c:if test="#{detailsId eq 'true'}">
<f:viewParam id="detailsid" name="detailsid" value="#{detailsBean.detailsId}" />
<f:viewAction action="#{detailsBean.onload}" />
</c:if>
</f:metadata>
</ui:composition>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<ui:include src="/WEB-INF/metadata_include.xhtml">
<ui:param name="detailsId" value="true" />
</ui:include>
</h:head>
<h:body>
</h:body>
</html>
details.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<f:metadata>
<f:viewParam name="from" value="#{loginBean.from}" />
<c:if test="#{detailsId eq 'true'}">
<f:viewParam id="detailsid" name="detailsid" value="#{detailsBean.detailsId}" />
<f:viewAction action="#{detailsBean.onload}" />
</c:if>
</f:metadata>
</ui:composition>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<ui:include src="/WEB-INF/metadata_include.xhtml">
<ui:param name="detailsId" value="true" />
</ui:include>
</h:head>
<h:body>
</h:body>
</html>
有人知道我做错了什么,或者知道如何以不同的方式实现这种行为吗
我还尝试了
,但没有成功。hy,为什么要将metadata\u include.xhtml放在WEB-INF文件夹中?请参阅@BalusC care解释为什么这个问题是重复的?到目前为止,我没有使用模板,也不知道如何有条件地指定viewParams,但我既没有使用模板属性,也没有使用
标记?我如何包含条件viewParams?真的吗?所以要么我定义静态viewParams(每个页面上都一样),要么我需要在每个JSF页面上指定viewParams?!真让人失望。。。仍然不明白为什么这个问题是重复的,虽然链接的答案没有提供一个解决方案,您可以保持viewParams的动态!hy,为什么要将metadata_include.xhtml放在WEB-INF文件夹中?请参阅@BalusC care解释为什么这个问题是重复的?到目前为止,我没有使用模板,也不知道如何有条件地指定viewParams,但我既没有使用模板属性,也没有使用
标记?我如何包含条件viewParams?真的吗?所以要么我定义静态viewParams(每个页面上都一样),要么我需要在每个JSF页面上指定viewParams?!真让人失望。。。仍然不明白为什么这个问题是重复的,虽然链接的答案没有提供一个解决方案,您可以保持viewParams的动态!