<p:layout>和<p:fileUpload>无法刷新页面

时间:2019-09-27 10:48:09

标签: jsf primefaces primefaces-extensions joinfaces

我正面临一个特殊的问题。我有一个基于SpringBoot,JoinFaces和PrimeFaces 6.2的单页应用程序。该页面主要具有一个带有两个选项卡的手风琴。

Tab 1 - has a <p:fileUpload> //user uploads XML files using it
Tab 2 - has a <p:layout> //the selected XML file's content is displayed here, segregated into two <p:layoutunit>

手风琴之后,我有一个带有提交按钮的工具栏,通过该工具栏,我可以将所选的XML发送到后端服务,该服务将XML数据转换为PDF。然后,我在<pe:documentViewer>

中使用PrimeFaces-Extension的<p:dialog>显示PDF

问题: 在我单击浏览器上的刷新之前,流程运行正常。如果刷新页面,则会发现<p:fileUpload><p:layout>的CSS出错。 (此外,<p:fileUpload>也停止工作。)

enter image description here enter image description here

观察1: 当我比较HTML源代码时,在刷新前后,我看到刷新后,页面在<head>下没有这些包含项:

<link type="text/css" rel="stylesheet" href="/javax.faces.resource/fileupload/fileupload.css.xhtml?ln=primefaces&amp;v=6.2" />
<script type="text/javascript" src="/javax.faces.resource/fileupload/fileupload.js.xhtml?ln=primefaces&amp;v=6.2"></script>
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/layout/layout.css.xhtml?ln=primefaces&amp;v=6.2" />
<script type="text/javascript" src="/javax.faces.resource/layout/layout.js.xhtml?ln=primefaces&amp;v=6.2"></script>

任何想法可能是什么原因以及如何纠正它?

观察2: Bean KWOMTesterController当前被标记为@Named。如果我也用javax.faces.view.ViewScoped进行注释,那么UI问题就解决了,但是<pe:documentViewer>抱怨缺少PDF(bean有一个DefaultStreamedContent字段,我在其中存储PDF数据)

代码段: 这是我的XHTML代码段:

<p:accordionPanel id="mainpanel"  activeIndex="0" binding="#{kwomTesterController.accordian}" cache="false">
    <p:tab title="Select target environment and KWOM XML">
        <p:panel>
            <p:fileUpload update=":mainform" label="Select KWOM XML"
                value="#{kwomTesterController.selectedFileName}" multiple="false" skinSimple="false" auto="true"
                fileUploadListener="#{kwomTesterController.handleUpload}" style="margin-top:20px" mode="advanced"/>
        </p:panel>
    </p:tab>

    <p:tab title="View/Edit selected KWOM XML " >
        <p:layout style="width:100%;height:360px;">
            <p:layoutUnit position="west" resizable="false" size="400" header="Configuration section">
               ...
               ...
               ...
            </p:layoutUnit>


            <p:layoutUnit position="center" header="Data section" style="overflow:hidden !important">
               <p:inputTextarea  rows="20" cols="138" autoResize="false" style="resize: none;" id="contentarea" 
                    value="#{kwomTesterController.data}" />
            </p:layoutUnit>

        </p:layout> 
    </p:tab>
</p:accordionPanel>

0 个答案:

没有答案