2016-04-26 67 views
0

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

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

这是可行的吗?

回答

1

大致来说:

在控制器/ 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 outout使用JSTL遍历集合岁月:

<c:forEach items="${years}" var="year"/> 
    <option value="${year}0930">${year}</option> 
</c:forEach> 
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>