Heyho,
使用PrimeFaces(6.0)编写JSF-Application时出了问题。问题是,当我使用模板(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>
更换
<ui:insert name="content">Content</ui:insert>
带
<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: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>
如上所述会导致错误。有什么想法吗?
答案 0 :(得分:0)
好。感谢@Kukeltje,我发现prettyfaces导致了这个问题。不幸的是,我无法将其作为副本(Primefaces FileUpload with PrettyFaces and JSF 2.2.3)关闭。
答案:
<?xml version="1.0" encoding="UTF-8"?>
<Context allowCasualMultipartParsing="true">
</Context>
context.xml中需要