我有问题。
我有一个数据库列作为 jan、feb、mar 直到 dec,每列都有不同的值。
我将这些值作为 jan、feb 等加载到 Java 对象中。在 UI、JSP 中,我遍历此对象列表并将列显示为 jan、feb 等。
但现在我的要求是根据当前月份显示。
例如。当前月份是 11 月,因此要显示的列是 11 月、12 月、1 月、2 月……直到 10 月。所以现在列的顺序会根据当前月份发生变化。我该怎么做?任何有关逻辑的帮助将不胜感激?
问候
你在寻找这样的东西。
<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"