2016-04-26 69 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>