Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有条件地包括JSF viewParam_Jsf_Jsf 2_Jstl - Fatal编程技术网

有条件地包括JSF viewParam

有条件地包括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:

我试图在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://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的动态!