如果今天是会计年度的最后一天,则从下拉菜单中删除当前年份

时间:2016-04-26 18:48:05

标签: javascript java html jsp

我有一个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结束。

当这一天到来时,我需要删除用户能够选择那一年的选项。

这可行吗?

2 个答案:

答案 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>