0

次のようなメッセージを追加するメソッドを持つマネージド Bean があります。

@ManagedBean
@ViewScoped
public class FileMB implements Serializable{

private static final long serialVersionUID = -2843716026642626725L;

private UploadedFile file;
private boolean enabled = false;

public UploadedFile getFile() {
    return file;
}

public void setFile(UploadedFile file) {
    this.file = file;
}

public void upload() {

    FacesMessage message = new FacesMessage("test");
    FacesContext.getCurrentInstance().addMessage(null, message);

}

私はxhtmlからこのメソッドを呼び出します:

<!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:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:p="http://primefaces.org/ui">
<h:head>
    <title></title>
</h:head>
<h:body>
<h:form>
    <p:commandButton value="Show" type="button" actionListener="#{fileMB.upload}" />
</h:form>
 <h:form id="frmMensajes">
    <p:messages id="mensajes" showDetails="false"/>
</h:form>
</h:body>
</html>

しかし、「テスト」メッセージが表示されません。faces-config にもマネージド Bean 宣言を追加しました。どうすればよいですか?

4

2 に答える 2

1

autoUpdate属性を追加してみてください。

このようなもの :<p:messages id="mensajes" showDetails="false" autoUpdate="true" />

ドキュメントによると:

自動更新が有効な場合、メッセージ コンポーネントは各 ajax リクエストで自動的に更新されます

于 2016-02-17T15:25:23.990 に答える
-1

最初の内部で次のいずれかを試してくださいh:form

1)p:messages globalOnly="true"

2)コマンド ボタンp:message for=<command button id>に追加idします。

于 2016-02-17T16:02:20.310 に答える