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 2 p:fileDownload不与h:head一起工作_Jsf 2_Primefaces_Download_Facelets_Head - Fatal编程技术网

Jsf 2 p:fileDownload不与h:head一起工作

Jsf 2 p:fileDownload不与h:head一起工作,jsf-2,primefaces,download,facelets,head,Jsf 2,Primefaces,Download,Facelets,Head,我有这样一个: <h:form id="form1"> <p:commandButton id="downloadLink" value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)" icon="ui-icon-arrowthichk-s" actionListener="#{search.downloadActionListener}">

我有这样一个

<h:form id="form1">
    <p:commandButton id="downloadLink" value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"   
        icon="ui-icon-arrowthichk-s" actionListener="#{search.downloadActionListener}">   
        <p:fileDownload value="#{search.dwnloadFile}" />  
    </p:commandButton> 
</h:form>
<head>
    <link href="/Project2.0/javax.faces.resource/themes/sam/theme.css.xhtml?ln=icefaces.ace" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/rfRes/skinning.ecss.xhtml?db=eAG7mShzEgAFjAIg" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/javax.faces.resource/primefaces.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/primefaces.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/dock/dock.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/dock/dock.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/layout/layout.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/layout/layout.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/jsf.js.xhtml?ln=javax.faces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icepush.js.xhtml?v=9261182" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/bridge.js.xhtml?v=9261182" type="text/javascript"></script>
    <script type="text/javascript">document.documentElement.isHeadUpdateSuccessful=true;</script>
    <style type="text/css">.ice-blockui-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}.ice-status-indicator-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}</style>
    <script src="/Project2.0/javax.faces.resource/compat.js.xhtml" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icefaces-compat.js.xhtml" type="text/javascript"></script>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>
<head>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>

它不起作用。“下载”按钮只是重新加载页面,不显示“另存为”对话框。在检查了每一件事之后,我知道如果我从页面中删除
标记,它就会开始工作

如果没有
,我就无法工作,因为PrimeFaces的外观和所有ajax功能都依赖于它


更新:使用
生成的HTML
如下所示:

<h:form id="form1">
    <p:commandButton id="downloadLink" value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"   
        icon="ui-icon-arrowthichk-s" actionListener="#{search.downloadActionListener}">   
        <p:fileDownload value="#{search.dwnloadFile}" />  
    </p:commandButton> 
</h:form>
<head>
    <link href="/Project2.0/javax.faces.resource/themes/sam/theme.css.xhtml?ln=icefaces.ace" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/rfRes/skinning.ecss.xhtml?db=eAG7mShzEgAFjAIg" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/javax.faces.resource/primefaces.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/primefaces.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/dock/dock.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/dock/dock.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/layout/layout.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/layout/layout.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/jsf.js.xhtml?ln=javax.faces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icepush.js.xhtml?v=9261182" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/bridge.js.xhtml?v=9261182" type="text/javascript"></script>
    <script type="text/javascript">document.documentElement.isHeadUpdateSuccessful=true;</script>
    <style type="text/css">.ice-blockui-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}.ice-status-indicator-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}</style>
    <script src="/Project2.0/javax.faces.resource/compat.js.xhtml" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icefaces-compat.js.xhtml" type="text/javascript"></script>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>
<head>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>

document.documentElement.IShadupdateSuccessful=true;
.ice blockui覆盖{位置:绝对;背景色:白色;z索引:28000;不透明度:0.22;过滤器:alpha(不透明度=22);}.ice状态指示器覆盖{位置:绝对;背景色:白色;z索引:28000;不透明度:0.22;过滤器:alpha(不透明度=22);}
项目
如果没有
,情况是这样的:

<h:form id="form1">
    <p:commandButton id="downloadLink" value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"   
        icon="ui-icon-arrowthichk-s" actionListener="#{search.downloadActionListener}">   
        <p:fileDownload value="#{search.dwnloadFile}" />  
    </p:commandButton> 
</h:form>
<head>
    <link href="/Project2.0/javax.faces.resource/themes/sam/theme.css.xhtml?ln=icefaces.ace" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/rfRes/skinning.ecss.xhtml?db=eAG7mShzEgAFjAIg" rel="stylesheet" type="text/css" />
    <link href="/Project2.0/javax.faces.resource/primefaces.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/primefaces.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/dock/dock.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/dock/dock.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <link href="/Project2.0/javax.faces.resource/layout/layout.css.xhtml?ln=primefaces" rel="stylesheet" type="text/css" />
    <script src="/Project2.0/javax.faces.resource/layout/layout.js.xhtml?ln=primefaces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/jsf.js.xhtml?ln=javax.faces" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icepush.js.xhtml?v=9261182" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/bridge.js.xhtml?v=9261182" type="text/javascript"></script>
    <script type="text/javascript">document.documentElement.isHeadUpdateSuccessful=true;</script>
    <style type="text/css">.ice-blockui-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}.ice-status-indicator-overlay {position: absolute;background-color: white;z-index: 28000;opacity: 0.22;filter: alpha(opacity = 22);}</style>
    <script src="/Project2.0/javax.faces.resource/compat.js.xhtml" type="text/javascript"></script>
    <script src="/Project2.0/javax.faces.resource/icefaces-compat.js.xhtml" type="text/javascript"></script>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>
<head>
    <title>
        Project
    </title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
    <link href="../Styles/jquery-ui-1.8.6.custom.css" rel="stylesheet" type="text/css" />
</head>

项目

的HTML输出表明您将PrimeFaces与ICEfaces混合在一起。具体问题的主要原因是来自ICEfaces的脚本:

<script src="/Project2.0/javax.faces.resource/icefaces-compat.js.xhtml" type="text/javascript"></script>

。这还包括下载按钮。但是不能使用ajax下载文件

完全清除冰面。你不需要它。但是如果你已经在使用PrimeFaces3.x,那么ICEfaces完全没有额外的价值。也许这是以前对各种JSF组件库进行实验的遗留问题

另见:


与具体问题无关,HTML输出还表明运行时类路径中也有RichFaces。虽然从理论上讲,这可以很好地与PrimeFaces配合使用,但我不建议将它们混合使用。RichFaces本质上没有PrimeFaces没有提供的东西。

比较两个HTML文档的标题,看看工作页面和非工作页面是否缺少/覆盖了任何内容。我检查了两个不同的HTML。我无法理解这一点,因为我对JSF和web开发还是新手。“它基本上是一个克隆”。没错,哈哈,非常感谢你的详细解释。实际上,我正在使用icefaces的fileupload标记,我发现这比primefaces标记更容易。我想我现在必须使用primefaces文件上传。