如何通过EL表达式使用Java代码?

时间:2014-03-21 12:22:04

标签: java jsf el

package test;

import java.util.ArrayList;
import java.util.List;

public class MyTest {

    List a = new ArrayList();

    public void testMe(){
        a.add("A");
        a.add("b");
        a.add("c");
        a.add("d");
        a.add("e");
        a.add("f");
        a.add("g");
        a.add("h");
        a.add("i");

        for(int i=0;i<a.size(); ){
             for (int j=i; j<i+3; j++)
                {
                    System.out.print( a.get(j));
                }
             System.out.print("\n");
             i = i+3;
             if(i> a.size())
                 break;
        }
    }

    public static void main(String arg[]){
        MyTest test = new MyTest();
        test.testMe();
    }
}

我想在JSF页面中对EL Expression执行相同的操作如何帮助我?

我有这个A,B,C,D,E,F,G,H,I,J,在我的Jsp / JSF页面中我必须展示它们

A B C D
E F G H
I J

1 个答案:

答案 0 :(得分:0)

正如@Adrian所说,使用EL表达式编写尽可能少的逻辑会更好。假设您使用的是JSF 2.x,只需检索枚举值并使用h:panelGrid对其进行格式化:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head />
<h:body>
    <h:panelGrid columns="4">
        <c:forEach var="letter" items="#{bean.letters}">
            <span>#{letter}</span>
        </c:forEach>
    </h:panelGrid>
</h:body>
</html>
@ManagedBean
@RequestScoped
public class Bean {

    public enum LETTER {
        A, B, C, D, E, F, G, H, I, J
    }

    public LETTER[] getLetters() {
        return LETTER.values();
    }
}