簡體   English   中英

如何在XHTML JSF頁面上從數據類呈現枚舉值

[英]How to render enum values from dataclass on xhtml jsf page

我在我的數據類中有一個枚舉,如下所示

公共枚舉ProcStat {

    NOT_READY               ((byte)-1, "Not Ready For Processing"),
    READY_FOR_PROCESSING    ((byte)0,  "Ready For Processing"),
    BEING_PROCESSED         ((byte)1,  "Being Processed"),
    PROCESSED_SUCCESSFULLY  ((byte)2,  "Processed Successfully"),
    MSG_SUPPRESSED          ((byte)98, "Msg suppressed before processing"),
    PROCESSED_ERROR         ((byte)99, "Processed With Error");

    private final Byte statByte; 
    private final String  statusDesc;
    ProcStat(Byte statByte, String statusDesc)
    {
        this.statByte = statByte;
        this.statusDesc = statusDesc;
    }
    @Override
    public String toString()
    {
        return statusDesc;
    }
    protected static ProcStat getProcStat(Byte procStat)
    {
        if (READY_FOR_PROCESSING.statByte.equals(procStat))             
        {
            return READY_FOR_PROCESSING;
        }           
        else if (BEING_PROCESSED.statByte.equals(procStat))             
        {
            return BEING_PROCESSED;
        }
        else if (PROCESSED_SUCCESSFULLY.statByte.equals(procStat))
        {   
            return PROCESSED_SUCCESSFULLY;
        }
        else if (MSG_SUPPRESSED.statByte.equals(procStat))
        {   
            return MSG_SUPPRESSED;
        }           
        else if (PROCESSED_ERROR.statByte.equals(procStat))
        {
            return PROCESSED_ERROR;                 
        }
        else
        {
            return NOT_READY;
        }
    }
    public Byte getStatByte()
    {
        return this.statByte;
    }
};

Proc_Stat引用數據庫表中的Number字段,我需要在頁面上顯示一列,該列為每行顯示相應的proc_stat數字字符串。 這就是我在xhtml頁面上呈現同一數據類的任何其他字段的方式:

id =“ dataTable” name =“ dataTable” var =“ data”

我如何給出枚舉類型的輸出值? 我會這樣嗎:value =“#{data.procstat.toString()}”?

我認為您需要在一個與getProcStat方法相同的托管bean中getProcStat方法。 就像是:

public String getProcStat(Byte byte) {
    return ProcState.getProcState(byte).toString();
}

在xhtml中:

value="#{yourBean.getProcState(data)}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM