AJAX JSF/PrimeFaces 中的文件上传错误:无法读取未定义的 属性 'debug'
AJAX file upload error in JSF/PrimeFaces : Cannot read property 'debug' of undefined
我有 2 种形式,其中一种是上传文件并执行一些操作的 uploadForm。上传后,当我提交保存按钮时,控制台出现错误:
- 未捕获类型错误:无法读取 属性 'length' of null
- jsf.js:578 主线程上的同步 XMLHttpRequest 已弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看 http://xhr.spec.whatwg.org/。
(程序):1
- 未捕获类型错误:无法读取未定义的 属性 'debug'
我找到了关于这个问题的相关主题,但仍然无法解决这个问题。我没有使用上传,所以我在这里混淆了。我只需要在每次调用保存按钮时更新表格。
<h:form id="uploadForm" prependId="true" enctype="multipart/form-data">
<center>
<p:tabView id="alltabs">
<p:tab id="tabupload" title="Upload File">
<h:outputText value="Choose Microsoft Excel or TXT file to import (.xls or .xlsx or .txt) "/>
<p:fileUpload id="uploaddatafile"
style="width: 350px"
value="#{addbookCnt.uploadedFile}"
fileUploadListener="#{addbookCnt.handleFileUpload}"
mode="advanced"
sizeLimit="1000000"
allowTypes="/(\.|\/)(xls|xlsx|txt)$/"
fileLimit="1">
</p:fileUpload>
<h:commandButton id="btnSubmit" actionListener="#{addbookCnt.utest()}" value="Save">
<f:ajax execute="@form alltabs tabupload " render="@all"/>
</h:commandButton>
</h:panelGrid>
</h:panelGrid>
</p:tab>
</p:tabView>
</center>
</h:form>
<h:form id="tables">
</h:form>
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
@ManagedBean(name = "addbookCnt")
@ViewScoped
public class ABController implements Serializable {
private UploadedFile uploadedFile;
public void handleFileUpload(FileUploadEvent event) {
LOG.info("handle file upload");
uploadedFile = event.getFile();
}
public void utest() {
LOG.info(uploadedFile.getFileName());
}
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
}
我在 primefaces 5.2 中遇到了同样的问题(在一个页面上加载了两次)。创建了一个拉取请求 https://github.com/primefaces/primefaces/pull/143 我们将看看他们何时会解决这个问题。在那之前,您只需使用以下行直接修复损坏的缩小版本就足够了:
function(a){if(a.PrimeFaces){a.PrimeFaces.debug("PrimeFaces already loaded, ignoring duplicate execution.");return}
我有 2 种形式,其中一种是上传文件并执行一些操作的 uploadForm。上传后,当我提交保存按钮时,控制台出现错误:
- 未捕获类型错误:无法读取 属性 'length' of null
- jsf.js:578 主线程上的同步 XMLHttpRequest 已弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看 http://xhr.spec.whatwg.org/。 (程序):1
- 未捕获类型错误:无法读取未定义的 属性 'debug'
我找到了关于这个问题的相关主题,但仍然无法解决这个问题。我没有使用上传,所以我在这里混淆了。我只需要在每次调用保存按钮时更新表格。
<h:form id="uploadForm" prependId="true" enctype="multipart/form-data">
<center>
<p:tabView id="alltabs">
<p:tab id="tabupload" title="Upload File">
<h:outputText value="Choose Microsoft Excel or TXT file to import (.xls or .xlsx or .txt) "/>
<p:fileUpload id="uploaddatafile"
style="width: 350px"
value="#{addbookCnt.uploadedFile}"
fileUploadListener="#{addbookCnt.handleFileUpload}"
mode="advanced"
sizeLimit="1000000"
allowTypes="/(\.|\/)(xls|xlsx|txt)$/"
fileLimit="1">
</p:fileUpload>
<h:commandButton id="btnSubmit" actionListener="#{addbookCnt.utest()}" value="Save">
<f:ajax execute="@form alltabs tabupload " render="@all"/>
</h:commandButton>
</h:panelGrid>
</h:panelGrid>
</p:tab>
</p:tabView>
</center>
</h:form>
<h:form id="tables">
</h:form>
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
@ManagedBean(name = "addbookCnt")
@ViewScoped
public class ABController implements Serializable {
private UploadedFile uploadedFile;
public void handleFileUpload(FileUploadEvent event) {
LOG.info("handle file upload");
uploadedFile = event.getFile();
}
public void utest() {
LOG.info(uploadedFile.getFileName());
}
public UploadedFile getUploadedFile() {
return uploadedFile;
}
public void setUploadedFile(UploadedFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
}
我在 primefaces 5.2 中遇到了同样的问题(在一个页面上加载了两次)。创建了一个拉取请求 https://github.com/primefaces/primefaces/pull/143 我们将看看他们何时会解决这个问题。在那之前,您只需使用以下行直接修复损坏的缩小版本就足够了:
function(a){if(a.PrimeFaces){a.PrimeFaces.debug("PrimeFaces already loaded, ignoring duplicate execution.");return}