我有一个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结束。
当这一天到来时,我需要删除用户能够选择那一年的选项。
这可行吗?
答案 0 :(得分:1)
非常粗略:
在您的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>
答案 1 :(得分:0)
@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);
然后,我显示我的选择元素:
<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>