我正在尝试在foreach
代码中使用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>
我试图列出当前年份到年份的所有年份:2000年的下拉列表。 但我得到空的下拉。
动作类代码:我用过
// 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);
}
答案 0 :(得分:1)
如果您尝试使用foreach循环,则可以尝试使用JSTL核心标记库中的forEach
标记。
<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>