我有一个jsp页面,可以让用户选择资金的到期年份。它基本上给出它们的年份,并将该会计年度传递给java bean,即:
<TR>
<TD colspan=3>
<FONT style="FONT-SIZE: 8pt" face="trebuchet, verdana, tahoma, sans serif" color=black><B>Funding Expiration Year</B></FONT>
</TD>
<TD width="60%">
<select id="selectYearId" name="fundExpirationDate">
<option value=""></option>
<option value="20150930">2015</option>
<option value="20160930">2016</option>
<option value="20170930">2017</option>
<option value="20180930">2018</option>
<option value="20190930">2019</option>
<option value="20200930">2020</option>
<option value="20210930">2021</option>
<option value="20220930">2022</option>
<option value="20230930">2023</option>
<option value="20240930">2024</option>
<option value="20250930">2025</option>
</select>
</TD>
</TR>我也试着用javascript动态地打印年度打印,这样我就不用明年来删除2015年了……但是一点运气都没有。(如果有人能指导我如何做到这一点,我将非常感激。)
不管怎样,本财年将在09/30结束。
当这一天到来时,我需要删除让用户能够选择年份的选项。
这可行吗?
发布于 2016-04-27 03:21:07
粗略地说:
在您的Controller/Servlet中(或者甚至在JSP中)设置一个模型。
Calendar cal = Calendar.getInstance();
int currentYear = cal.get(Calendar.YEAR);
List<Integer> years = new ArrayList<Integer>();
for(int i = currentYear - 1; i < currentYear + 10; ++ i){
years.add(i);
}
request.setAttribute("years", years);在您的JSP中,使用JSTL迭代集合:
<c:forEach items="${years}" var="year"/>
<option value="${year}0930">${year}</option>
</c:forEach>发布于 2016-04-27 20:59:23
@AlanHay感谢您的建议。你帮我找到了解决方案。
首先,我像Alan建议的那样设置了年份属性,并检查今天是否是会计年度的最后一天,如果是,则不在选项列表中显示该年份,同时将第一个选项设置为空,以防用户不想选择任何内容,并使用默认值:
Calendar cal = Calendar.getInstance();
int currentYear = cal.get(Calendar.YEAR);
int lastYear = currentYear-1;
int currentMonth = cal.get(Calendar.MONTH);
int currentDay = cal.get(Calendar.DAY_OF_MONTH);
List<Integer> years = new ArrayList<Integer>();
years.add(0);
for(int i = currentYear-1; i < currentYear + 10; ++ i){
if(!(currentMonth == 9 && currentDay == 30 && i == lastYear))
years.add(i);
}
request.setAttribute("years", years);然后,我显示我的select元素:
<TD>
<select name="expirationDate">
<%
String s_year = "";
for(int m_year : years)
{
s_year = m_year + "";
if(m_year == 0)
s_year = "";%>
<option value="<%=s_year%>0930"><%=s_year%></option>
<%}%>
</TD>https://stackoverflow.com/questions/36873342
复制相似问题