Я сталкиваюсь со специфической проблемой.У меня есть одностраничное приложение, основанное на 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,Затем я отображаю PDF, используя <pe:documentViewer>
PrimeFaces-Extension внутри <p:dialog>
Проблема: Поток работает нормально, пока я не нажму на кнопку "Обновить" в браузере.Если я обновляю страницу, я замечаю, что CSS для <p:fileUpload>
и <p:layout>
работает неправильно.(Также, <p:fileUpload>
перестает работать).
Наблюдение 1: Когда я сравниваю исходный код HTML, до и после обновления я вижу, что после обновления на странице нет таких элементов, как <head>
:
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/fileupload/fileupload.css.xhtml?ln=primefaces&v=6.2" />
<script type="text/javascript" src="/javax.faces.resource/fileupload/fileupload.js.xhtml?ln=primefaces&v=6.2"></script>
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/layout/layout.css.xhtml?ln=primefaces&v=6.2" />
<script type="text/javascript" src="/javax.faces.resource/layout/layout.js.xhtml?ln=primefaces&v=6.2"></script>
Любая идея, что может быть причиной этого, икак это исправить?
Замечание 2: Бин KWOMTesterController в настоящее время помечен @Named
.Если я также аннотирую его с помощью javax.faces.view.ViewScoped
, то проблема с пользовательским интерфейсом решена, но <pe:documentViewer>
жалуется на отсутствие PDF (у компонента есть поле 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>