2016-04-26 78 views
0

我有一個應用程序正在開發jsf 2.0,primefaces和使用Eclipse Kepler IDE。我需要在dataTable中顯示一個字符串值作爲長整型值。可能有6個可能的值從1到6.我跟着this問題來解決我的問題,但我不能。我剪斷代碼使用三元運算符實現其他如果在EL - jsf

<p:dataTable var="student" value="#{studentBean.studentList}"> 
    <p:column headerText="Class"> 
    <h:outputText value="#{student.studentClass == 1? 'One' : 
          student.studentClass == 2? 'Second' : 
          student.studentClass == 3? 'Third' : 
          student.studentClass == 4? 'Fourth' : 
          student.studentClass == 5? 'Fifth': 
          student.studentClass == 6? 'Sixth':''}" /> 
    </p:column> 
     .... 

我也嘗試: -

student.studentClass.equals(1l) and student.studentClass.equals(1L) 

,但沒有運氣。我在做什麼錯了

+1

所以這是一個「長」? '#{student.studentClass}'和'#{student.studentClass ['class']}'是什麼打印的? – BalusC

+0

#{student.studentClass}打印1,2等我需要顯示第一,第二...... – jaykio77

+0

如果您要調用支持bean,爲什麼不從那裏返回值? – raven

回答

0

這種方法不行嗎?

<h:outputText rendered="#{student.studentClass == 1}" value="One" /> 
<h:outputText rendered="#{student.studentClass == 2}" value="Two" /> 
... 
<h:outputText rendered="#{student.studentClass == 6}" value="Six" /> 
+0

優秀。它爲我工作。 – jaykio77

1

我寧願增加模型的簡單變化,說:

類POJO的/實體

public class Student{ 

    ... 

    // Add transient annotation only if is an entity class 
    @Transient 
    private String valueToShow; 

    public String getValueToShow(){ 
    if("1".equals(this.studentClass){ 
     return "One"; 
    } else if("2".equals(this.studentClass){ 
     return "Two"; 
    } 
     ... 
    } 

} 

然後,添加這種變化的XHTML文件(JSF頁):

<p:dataTable var="student" value="#{studentBean.studentList}"> 
    <p:column headerText="Class"> 
    <h:outputText value="#{student.valueToShow}" /> 
    </p:column> 
    ....