Heyho、JSF FileUploadはuiを使用しても動作しません。define
PrimeFaces(6.0)を使用してJSFアプリケーションを作成する際に問題が発生しました。問題は、テンプレート化(ui:define)を使用すると、アプリケーションのFileUploadが機能しなくなることです。同じページをテンプレートなしで構築すると(同じ構造、基本的にテンプレートを使用してサンプルコードを挿入すると)、それは魅力的に機能します。どちらのページも同じです(出力を比較しました)テンプレートを使用していますが、ブラウザコンソールで次の警告メッセージが表示されます。
メインスレッドの同期XMLHttpRequestは、エンドユーザーの経験に有害な影響を及ぼします。詳細については、https://xhr.spec.whatwg.org/を確認してください。
ui:defineを使用しているときにこのエラーを引き起こす原因は何ですか?私が言及したように、テンプレートを使用しない場合の出力は同じですが、機能していないので、一般的なコードでエラーを除外します。
マイテンプレートは、この(つまらない部分を削除)のようになります。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
...
</h:head>
<h:body>
<nav>
...
</nav>
<div class="wrapper">
<header>
<div class="header-title">
...
</div>
<div class="header-navbar">
...
</div>
</header>
<div class="container">
<div id="content" class="center_content">
<ui:insert name="content">Content</ui:insert>
</div>
<footer>
...
</footer>
</div>
</div>
</h:body>
</html>
<h:form id="fileUpoad" prependId="false" enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{fileUploadBean.uploadPhoto}" mode="advanced" update="messages" auto="true" sizeLimit="100000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:messages id="messages" autoUpdate="true" closable="true" />
</h:form>
と
<ui:insert name="content">Content</ui:insert>
を交換すると、動作しますが、これやって:
<ui:composition template="/resources/templates/dashboard_template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:define name="title">
Dashboard
</ui:define>
<ui:define name="content">
<h:form id="fileUpoad" prependId="false" enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{fileUploadBean.uploadPhoto}" mode="advanced"
update="messages" auto="true" sizeLimit="100000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:messages id="messages" autoUpdate="true" closable="true" />
</h:form>
</ui:define>
</ui:composition>
を
上記のエラーが発生します。何か案は?
:
からのcontext.xml
に必要なのか?ページを読み込むだけですか?アップロードを行っていますか? – Kukeltje
両方のケースでjsファイルを(ブラウザ開発ツールで)読み込むのに違いはありますか? – Kukeltje
@Kukeltjeアップロードするときにこれが表示されます。 –