我正在尝试使用rich:fileUpload 控件上传文件,我也能够成功地这样做。我在这里面临的唯一问题是,当我单击文件上传控件中的上传按钮时,页面被提交,这是我试图避免的。
我想要做的是,只要单击上传按钮,就会调用侦听器来执行必要的后端操作。并刷新要显示图片的部分。一切运行良好,但我想通过 AJAX 上传文件。
我正在使用 Richfaces 4.1
<rich:fileUpload addLabel="Add photo" clearAllLabel="Clear All" clearLabel="Clear"
deleteLabel="Remove" doneLabel="Upload successful!"
uploadLabel="Upload profile pic"
fileUploadListener="#{studentProfile.fileUploadListener}"
acceptedTypes="jpg, gif, png, bmp" noDuplicate="true" immediateUpload="false">
<!-- <a4j:ajax event="uploadcomplete" render="validationButton"/> -->
<!-- <a4j:ajax event="clear" listener="#{uploadBean.doClearFilesList}" render="validationButton"/> -->
<a4j:ajax event="uploadcomplete" render="profilepic" immediate="true" />
</rich:fileUpload>
<a4j:outputPanel ajaxRendered="true" id="profilepic">
<rich:panel header="Profile Picture" style="width: 100px;height: 100px">
<h:graphicImage url="#{studentProfile.profilePictureURL}" width="100" height="100" />
</rich:panel>
</a4j:outputPanel>