上传文件时RichFaces 4通知

时间:2012-04-12 19:44:45

标签: java jsf richfaces

我有一个<rich:fileUpload>组件,我想在文件被拒绝时显示通知,因为不允许这种类型。我看到RF有<rich:notifyMessage>,但是当文件被拒绝时我无法呈现消息。到目前为止,我有:

    <rich:fileUpload id="fileUploadComp"
                     addLabel="Agregar" clearAllLabel="Quitar todos"
                     clearLabel="Quitar" deleteLabel="Quitar"
                     doneLabel="Completado" uploadLabel="Subir archivos"
                     fileUploadListener="#{uploadBean.doUpload}"
                     acceptedTypes="txt, csv" onclear="onclear(event);"
                     noDuplicate="true">
        <a4j:ajax event="uploadcomplete" render="validationButton"/>
        <a4j:ajax event="typerejected" render="notificationFileRejected"/>
    </rich:fileUpload>

    <rich:notifyMessage for="fileUploadComp" 
                        id="notificationFileRejected"
                        sticky="true"
                        ajaxRendered="true"
                        title="Hello"/>

但是当我选择JPEG时,我看不到任何通知地球。

关于如何实现这一目标的任何想法?

更新

这样做的主要目的是显示一条通知,告诉用户“不允许使用文件类型”。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

类似的东西:

<rich:fileUpload id="fileUploadComp"
                 addLabel="Agregar" clearAllLabel="Quitar todos"
                 clearLabel="Quitar" deleteLabel="Quitar"
                 doneLabel="Completado" uploadLabel="Subir archivos"
                 fileUploadListener="#{uploadBean.doUpload}"
                 acceptedTypes="txt, csv" onclear="onclear(event);"
                 ontyperejected="ontyperejected();"
                 noDuplicate="true">
    <a4j:ajax event="uploadcomplete" render="validationButton"/>
</rich:fileUpload>

<a4j:jsFunction name="ontyperejected" actionListener="#{uploadBean.setMessage()}"/>

<rich:notifyMessage stayTime="2000" nonblocking="true"/>

使用java代码:

public void setMessage() {
  String message="Wrong filetype...";
  FacesContext.getCurrentInstance().addMessage("info", new FacesMessage(FacesMessage.SEVERITY_INFO, message, message));
}

MAG, Milo van der Zee

答案 1 :(得分:1)

不如我想要的那么好但是它可以解决问题。

    <rich:fileUpload id="fileUploadComp"
                     addLabel="Agregar" clearAllLabel="Quitar todos"
                     clearLabel="Quitar" deleteLabel="Quitar"
                     doneLabel="Completado" uploadLabel="Subir archivos"
                     fileUploadListener="#{uploadBean.doUpload}"
                     acceptedTypes="txt, csv" onclear="onclear(event);"
                     ontyperejected="ontyperejected();"  //THIS IS MY TRICK
                     noDuplicate="true">
        <a4j:ajax event="uploadcomplete" render="validationButton"/>
    </rich:fileUpload>

    <script>
        var ontyperejected = function(){
            alert('Archivo inválido. Tipos permitidos: .txt y .csv');
        }
    </script>

只需创建一个JScript函数并发送一条警告消息。瞧。 如果有人知道如何实现那个看起来很淡的通知地球,我会非常感激!