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 回答