我正在尝试使用
<c:forEach>
标签在 <html:select>
标签中循环。
<html:select property="year" >
<s:iterator var="i" begin="${1}" end="${monthlyChargeForm.currentYear - 2000}" >
<s:set var="counter" value="${monthlyChargeForm.currentYear}"/>
<html:option value="${counter}">
<c:out value="${counter}"/>
</html:option>
<s:set var="counter" value="${counter-1}"/>
</s:iterator>
</html:select>
我试图在下拉列表中列出从当年到 YEAR : 2000 的所有年份。 但我得到的下拉菜单是空的。
我使用过的Action类代码:
// monthlyChargeForm.setCurrentYear(now.get(Calendar.YEAR) );
获取当前年份。
public class MonthlyChargeAction extends Action {
private ActionMessages messages;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {
ServletContext context = getServlet().getServletContext();
BACUtils bacUtils = new BACUtils();
String sessionStatus = HtmlBean.isSessionOut(request.getSession(false), context);
if(!Constants.SUCCESS_STATUS.equals(sessionStatus)) {
return mapping.findForward("sessionOut");
}
String accesssStatus = HtmlBean.isSessionValid(request.getSession(false), context,
Properties.ACCESS_PROFILE[8][0]);
if(!Constants.SUCCESS_STATUS.equals(accesssStatus)) {
return mapping.findForward("sessionOut");
}
MonthlyChargeForm monthlyChargeForm = (MonthlyChargeForm)form;
Reports reports = new Reports();
String sUser =(String) request.getSession().getAttribute("USERID");
String returnVal = "";
int i = 0;
try {
monthlyChargeForm.setFromDate(bacUtils.getDate());
monthlyChargeForm.setToDate(bacUtils.getDate());
Calendar now = Calendar.getInstance();
String fromDate = monthlyChargeForm.getFromDate();
String toDate = monthlyChargeForm.getToDate();
String curentDate = bacUtils.getDate();
monthlyChargeForm.setCurrentYear(now.get(Calendar.YEAR) );
System.out.println("Current Year :::::::::" +
monthlyChargeForm.getCurrentYear());
AuditTrial.insertLog(5,sUser,null,"General Reports Module Loaded
Successfully",(String)
request.getSession().getAttribute("OPER_TYPE"),"S",request.getRemoteAddr(),context);
if(monthlyChargeForm.getPageIndex() == null ||
monthlyChargeForm.getPageIndex().trim().length() == 0)
monthlyChargeForm.setPageIndex(Integer.toString(BACUtils.getIntVal(
monthlyChargeForm.getPageIndex())));
if(monthlyChargeForm.getMonth()!=null &&
monthlyChargeForm.getYear()!=null )
{
monthlyChargeForm.setMonthlyChargeReport(
reports.getMonthlyChargeData(monthlyChargeForm, 10, context));
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(Constants.SUCCESS_MAPPING);
return mapping.findForward(Constants.SUCCESS_MAPPING);
}
如果您尝试使用 foreach 循环,那么您可以尝试 JSTL 核心标签库中的
forEach
标签。
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html:select property="year" >
<c:forEach varStatus="i" begin="${monthlyChargeForm.currentYear}" end="2000" step="-1">
<html:option value="${i.index}">
<c:out value="${i.index}"/>
</html:option>
</c:forEach>
</html:select>