1

質問があります。

jan、feb、marからdecまでのデータベース列があり、各列の値は異なります。

これらの値をjan、febなどとしてJavaオブジェクトにロードします。UI、JSPでは、このオブジェクトのリストを反復処理し、列をjan、febなどとして表示します。

しかし今、私の要件は今月に基づいた表示です。

例えば。今月は11月なので、表示される列は11月、12月、1月、2月...から10月までです。したがって、列の順序は現在の月に基づいて変わります。どうすればこれらを行うことができますか?ロジックに関するヘルプをいただければ幸いです。

よろしく

4

1 に答える 1

0

このようなものをお探しですか。

<rich:dataTable value="#{aBean.aList}" var="_var">
    <c:forEach var="column" items="#{myBean.columnsList}" >
      <rich:column>
         <f:facet name="header">#{column.headerName}</f:facet>
         Hello!
      </rich:column>
    </c:forEach>
</rich:dataTable>

あなたの豆はこのようになります。

public class MyBean {
  List<String> months = new ArrayList<String>();
  List<Column> columnsList = new ArrayList<Column>();
  String currentMonth = "Apr";

  public MyBean() {//Adding months
    months.add("Jan");
    months.add("Feb");
    months.add("Mar");
    months.add("Apr");
    months.add("May");
  }

  public List<Column> getColumnsList() {//Building columns
    for(int i = months.indexOf(currentMonth); ;) {
      Column c = new Column(months.get(i));
      columnsList.add(c);

      if(i == months.size() - 1) {
        i = 0;
      } else {
        i++;
      }
      if(i == months.indexOf(currentMonth)) {
        break;
      }
    }
    return columnsList;
  }


  public class Column {
    String headerName;
    Column(String headerName) {
      this.headerName = headerName;
    }
    public String getHeaderName() {
      return headerName;
    }
  }
}

変数の値を変更し、currentMonth期待どおりに動作するかどうかを確認します。

編集:


名前空間をインポートする必要がありますxmlns:c="http://java.sun.com/jstl/core"

于 2012-11-20T04:01:54.567 に答える