在JSF中使用If-Else语句

  • 本文关键字:If-Else 语句 JSF jsf el
  • 更新时间 :
  • 英文 :


我有一个网站,上面显示了一些列表。现在,列表显示在两列中,即使只有2或3个列表元素(看起来很愚蠢),但我希望只显示在一列中。

是否有办法在if-else语句中添加>和<运营商吗?>

这就是我所做的,但是不工作:

<ui:if value="#{graphicDynamic.elements.size < 3}" var="hotspots" >
     ...do the one column thing...
</ui:if>
<ui:else>
    ..do the other thing...
</ui:else>

下面的内容不是更简单吗

<!-- Has more then 3 elements - display hotspots in two columns -->   
<h:outputLabel rendered="#{bean.value ge 3}" >           
     Render the site elements for this case
</h:outputLabel>            
<!-- Has less then or 3 elements - display hotspots in one column -->
<h:outputLabel rendered="#{bean.value le 3}" >           
     Render the site elements for this case
</h:outputLabel>

找到了一个解决方案,也许它有时会帮助别人…无论如何,这是我的解决方案:

<!-- Has more then 3 elements - display hotspots in two columns -->   
<h:outputLabel rendered="#{SomeClass.hasMoreThanThree}" >           
     Render the site elements for this case
</h:outputLabel>            
<!-- Has less then or 3 elements - display hotspots in one column -->
<h:outputLabel rendered="#{not SomeClass.hasMoreThanThree}" >           
     Render the site elements for this case
</h:outputLabel>

在控制器中:

public class SomeClass implements Serializable {
private boolean hasMoreThanThree; 
public SomeMethod(SomeType someParameter) {
    ...some code...
    setHasMoreThanThree(someList.size());
    ...some more code..
}
public boolean getHasMoreThanThree() {  
    return hasMoreThanThree;
}
public void setHasMoreThanThree(int size) {
    if (size >= 3){
    this.hasMoreThanThree=true;
    }
}   

最新更新