使用三元运算符实现else if in EL - jsf
Using Ternary Operator to implement else if in EL - jsf
我正在使用 jsf 2.0、primefaces 和 Eclipse Kepler IDE 开发一个应用程序。我需要在 dataTable 中显示一个字符串值作为长值。从 1 到 6 可能有 6 个可能的值。我已经按照 this 问题解决了我的问题,但我做不到。我截断的代码是
<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)
但运气不好。我做错了什么
这种方法不也行吗?
<h:outputText rendered="#{student.studentClass == 1}" value="One" />
<h:outputText rendered="#{student.studentClass == 2}" value="Two" />
...
<h:outputText rendered="#{student.studentClass == 6}" value="Six" />
我更愿意在模型中添加一个简单的更改,比如:
Class 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";
}
...
}
}
然后,将此更改添加到 xhtml 文件(JSF 页面):
<p:dataTable var="student" value="#{studentBean.studentList}">
<p:column headerText="Class">
<h:outputText value="#{student.valueToShow}" />
</p:column>
....
我正在使用 jsf 2.0、primefaces 和 Eclipse Kepler IDE 开发一个应用程序。我需要在 dataTable 中显示一个字符串值作为长值。从 1 到 6 可能有 6 个可能的值。我已经按照 this 问题解决了我的问题,但我做不到。我截断的代码是
<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)
但运气不好。我做错了什么
这种方法不也行吗?
<h:outputText rendered="#{student.studentClass == 1}" value="One" />
<h:outputText rendered="#{student.studentClass == 2}" value="Two" />
...
<h:outputText rendered="#{student.studentClass == 6}" value="Six" />
我更愿意在模型中添加一个简单的更改,比如:
Class 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";
}
...
}
}
然后,将此更改添加到 xhtml 文件(JSF 页面):
<p:dataTable var="student" value="#{studentBean.studentList}">
<p:column headerText="Class">
<h:outputText value="#{student.valueToShow}" />
</p:column>
....