File upload Jsf2 Richfaces 4文件上载,显示业务逻辑错误
我使用jsf2和RichFaces4实现了一个文件上传。它工作得很好,只犯了一个小错误 当我上传文件时,可能会发现我收到来自业务逻辑的异常。e、 g.文件已处理 如何管理它以显示此异常?我试图注册我的上传完成并呈现的形式,但没有成功 我的Fileupload bean我试图在faces ontext上设置捕获的异常,但运气不好:-/:File upload Jsf2 Richfaces 4文件上载,显示业务逻辑错误,file-upload,jsf-2,richfaces,File Upload,Jsf 2,Richfaces,我使用jsf2和RichFaces4实现了一个文件上传。它工作得很好,只犯了一个小错误 当我上传文件时,可能会发现我收到来自业务逻辑的异常。e、 g.文件已处理 如何管理它以显示此异常?我试图注册我的上传完成并呈现的形式,但没有成功 我的Fileupload bean我试图在faces ontext上设置捕获的异常,但运气不好:-/: public void uploadSvg(FileUploadEvent event) { UploadedFile uploadedFile = ev
public void uploadSvg(FileUploadEvent event) {
UploadedFile uploadedFile = event.getUploadedFile();
File file = writeFileToDisk(uploadedFile);
try {
Utils.getSpringBean(FigureService.class).importFigure(
file.getAbsolutePath());
} catch (Exception e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
file.getName() + " -> " + e.getMessage(), null);
FacesContext.getCurrentInstance().addMessage(null, message);
log.error(e,e);
// TODO display messages
}
}
我的页面我使用它进行两次不同的文件上传。希望你不介意:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<body>
<h:form id="files" >
<h:messages errorStyle="color:red" warnStyle="color: yellow" />
<h:panelGrid columns="1">
<h:column>
<c:if test="#{fileType eq 'svg'}">
<rich:fileUpload fileUploadListener="#{fileUpload.uploadSvg}"
maxFilesQuantity="5" id="uploadsvg" immediateUpload="false"
acceptedTypes="svg" allowFlash="false"
uploadData="#{fileUpload.uploadedFiles }" autoclear="false">
<a4j:ajax event="uploadcomplete" execute="@none" render="files"/>
</rich:fileUpload>
</c:if>
<c:if test="#{fileType eq 'fm'}">
<rich:fileUpload fileUploadListener="#{fileUpload.uploadFm}"
maxFilesQuantity="5" id="uploadfm" immediateUpload="false"
acceptedTypes="csv" allowFlash="false"
uploadData="#{fileUpload.uploadedFiles }" autoclear="false">
<a4j:ajax event="uploadcomplete" execute="@none" render="files"/>
</rich:fileUpload>
</c:if>
</h:column>
</h:panelGrid>
</h:form>
</body>
</html>
非常感谢!
问候语,
m如何验证是否触发了uploadcomplete事件?我想这可能就是问题所在。我忘记了我的bean是可视范围的。当我尝试展示时,刷新工作正常。如果将showcase会话范围设置为viewscope,则在完成事件后也不会刷新。