richface fileUpload onerror无法启动

时间:2014-08-04 14:11:53

标签: java file-upload richfaces

我有一个Richfaces组件 - fileUpload即使服务器转换异常,它的onerror方法也不会启动。这是组件'代码:

                        <rich:fileUpload

                            immediateUpload="true" 
                            acceptedTypes="pdf, txt, rtf, xls, xlsx, doc, docx, ppt, pptx, jpg, jpeg, mpg, mpeg"
                            allowFlash="true"
                            maxFilesQuantity="1"

                            fileUploadListener="#{bean.listener}"

                            onerror="alert('error');"
                            onuploadcomplete="alert('complete');"
                            >
                            <f:attribute name="typ" value="#{cc.attrs.typ}"></f:attribute>
                        </rich:fileUpload>

我的bean.listener看起来像这样:

public void listener(final FileUploadEvent event) throws IOException, ConversionException {
    throw new RuntimeException("haha");

}

在任何情况下我唯一得到的是complete消息。 RichFaces的版本为4.2.3。 有人遇到过这样的问题吗?

感谢。

UPD。

好的,我查看了Richfaces 4文档,实际上没有onerror事件。似乎任何结果都是框架的成功。所以现在问题是如何对来自服务器的异常做出反应?

1 个答案:

答案 0 :(得分:1)

您可以收听uploadcomplete。它会发送您可以检查其状态的项目,例如:

onuploadcomplete="checkItems(event)"
…

checkItems = function(event) {
    var items = event.rf.data;

    for (var i = 0; i < items.length; i++) {
        if (items[i].state == "serverError") { // and/or "sizeExceeded"
            alert('error');
        }
    }
}

编辑: 啊,我看到你在听众中解雇了异常。您将以此方式捕获的例外情况与将文件传输到服务器有关。在调用监听器时,组件已经传递了文件,因此状态是“完成”#34;。您必须自己处理侦听器中发生的异常。