2

既存の大規模なSEAMプロジェクトのユーザーに情報メッセージを追加しようとしています。<h:messages/>.xhtmlページにを追加しました。これは、というクラスのコードでの試みですAbstractChartControllerが、アクション後にページが更新されると、FacesMessages以外が表示されます。次に何を試すことができるか、誰か知っていますか?

if (axis.getAxisType() == AxisType.LOGARITHMIC  && axis.getLowestValue() <= 0d){
    //Non of this code works:
    //Attempt 1
    FacesMessages facesMessages = FacesMessages.instance();
    facesMessages.add(FacesMessage.SEVERITY_INFO, "Note: Data contains values below or equal to zero so cannot be plotted on a logarithmic axis.");
    //Attempt 2
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage("Test2");
    context.addMessage(null, message);
    //Attempt 3
    org.jboss.seam.faces.FacesContext myContext = (org.jboss.seam.faces.FacesContext) Component.getInstance("FacesContext");
    if (myContext != null) { //Why is this null in debug?
        myContext.getContext().addMessage("Test3", message);
    }
    //Attempt 4:
    //StatusMessages.instance()
    //.add(StatusMessage.Severity.INFO, "Test4");
    // (Compile time error above that it can't find StatusMessages class to import)
    System.out.println("FacesMessage added");
    ...

編集:「追加された顔メッセージ」が私の日食コンソールに表示されているので、コードが実行されています

このクラスは何らかの理由でFacesContextにアクセスできないと思いますか?私は正しい方向に進んでいますか?

4

1 に答える 1

1
StatusMessages statusMessages =  Component.getInstance("statusMessages");
statusMessages.add(Severity.ERROR,"Note: Data contains values below or equal to zero so cannot be plotted on a logarithmic axis.");
于 2012-07-31T22:20:00.253 に答える