7

ace:fileEntryコンポーネントを使用してファイルをアップロードしていますが、アップロードが成功すると、次のメッセージが表示されます。

'File Entry' uploaded successfully 'filename'.

そして私はこのメッセージを上書きして他のメッセージ(アップロードされたファイルを解析するためのある種の要約)を表示したいのですが、どのようにアイデアがありますか?

これが私のコードです:

<h:form>
        <ace:fileEntry id="fileEntryComp"
               label="File Entry"
               relativePath="uploaded"
               fileEntryListener="#{mybean.uploadFile}"/> 



        <h:commandButton value="Upload Excel File" />
        <h:message for="fileEntryComp" />         

    </h:form>
4

3 に答える 3

5

fileEntry.getResults()。getFiles()は、FileInfoオブジェクトのArrayListを提供します。ファイルを1つだけアップロードする場合は、次の方法でFileInfoを取得できます。

FileInfo fileInfo = fileEntry.getResults().getFiles().get(0);

デフォルトのメッセージを上書きするには、FileInfoのupdateStatusメソッドを次の方法で呼び出す必要があります。

fileInfo.updateStatus(new FileEntryStatus() {
    @Override
    public boolean isSuccess() {
        return true;
    }
    @Override
    public FacesMessage getFacesMessage(FacesContext facesContext,
            UIComponent fileEntry, FileEntryResults.FileInfo fi) {
        return new FacesMessage(FacesMessage.SEVERITY_INFO,
                "My success message: " + fi.getFileName(),
                "My success message: " + fi.getFileName());
    }
}, true, true);
于 2012-12-13T09:16:41.423 に答える
3

独自のメッセージを作成して送信する必要があります。デフォルトのメッセージを上書きします。その奇妙な動作ですが、動作します。

public void uploadFile(FileEntryEvent e) {
  FileEntry fe = (FileEntry)e.getComponent();

  FacesContext ctx = FacesContext.getCurrentInstance();
  FacesMessage msg = new FacesMessage();
  msg.setServity(FacesMessage.SERVITY_INFO);
  msg.setSummary("mysummary");
  msg.setDetail("mydetail");
  ctx.addMessage(fe.getClientId(),msg);
}

ショーケースを確認できます:http ://comp-suite.icefaces.org/comp-suite/showcase.jsf?grp = aceMenu&exp = fileEntry

于 2011-11-20T09:19:37.400 に答える
2

icefacesメッセージを上書きできます。

デフォルトのメッセージバンドル(ovverrideへのメッセージを知るためだけに)はicefacesソースパッケージにあります:

     icefaces3/ace/component/src/org/icefaces/ace/resources/messages.properties

どこ:

     org.icefaces.ace.component.fileEntry.SUCCESS          = ''{0}'' has successfully uploaded ''{1}''
     org.icefaces.ace.component.fileEntry.SUCCESS_detail   = ''{0}'' has successfully uploaded ''{1}''

これらは、application.propertiesファイルに入れた行です。

    org.icefaces.ace.component.fileEntry.SUCCESS          = File ''{1}'' caricato correttamente
    org.icefaces.ace.component.fileEntry.SUCCESS_detail   = File ''{1}'' caricato correttamente

必ずapplication.propertiesをfaces-config.xmlで定義し、アプリケーションで表示できるようにしてください。

<application>
    <message-bundle>application</message-bundle>
    <locale-config>
        <default-locale>en</default-locale>
    </locale-config>
</application>

これは、すべてのIcefacesのデフォルトメッセージで実行できます...

于 2012-07-20T14:23:39.223 に答える