2016-04-26 9 views
0

Ich habe eine Anwendung in JSF 2.0, primefaces entwickelt und Eclipse Kepler IDE. Ich muss einen String-Wert in DataTable für lange Wert anzeigen. Es könnte 6 mögliche Werte von 1 bis 6 geben. Ich habe this Frage, um mein Problem zu lösen, aber ich kann nicht. mein Code snipped istTernary Operator Mit anderen zu implementieren, wenn in 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> 
     .... 

i auch versucht: -

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

aber kein Glück. Was mache ich falsch?

+1

Also ist es ein 'lang'? Was wird mit '# {student.studentClass}' und '# {student.studentClass ['class']}' gedruckt? – BalusC

+0

# {} student.studentClass Drucke 1, 2 usw., für die ich brauche, zu zeigen, Second ... – jaykio77

+0

, wenn Sie die Backing Bean sind rufen sowieso, warum Sie den Wert von dort nicht zurück? – raven

Antwort

0

Würde dieser Ansatz nicht auch funktionieren?

<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

ausgezeichnet. es hat für mich funktioniert. – jaykio77

1

Ich ziehe es würde eine einfache Änderung im Modell hinzufügen, sagen:

Klasse Pojo/Entity

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"; 
    } 
     ... 
    } 

} 

Dann fügen Sie diese Änderung auf die xhtml-Datei (JSF-Seite):

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