首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在何处为保存元数据的Java bean指定默认值以设置月历的格式

在何处为保存元数据的Java bean指定默认值以设置月历的格式
EN

Stack Overflow用户
提问于 2010-11-05 22:11:24
回答 1查看 1.4K关注 0票数 0

我有一个Java bean,它存储我所说的元数据(周开始日、任何节假日),JSP视图将使用它来显示日历月份。我使用的是JSTL,而不是EL,因为公司只有jsp 1.2

代码语言:javascript
复制
  <table align="center" border="1" cellpadding="3" cellspacing="0" width="100%" class="tableInternalBorder">
     <tbody>
        <tr>
           <th width="180px" class="optionYellow">Sun</th>
           <th width="180px">Mon</th>
           <th width="180px">Tue</th>
           <th width="180px">Wed</th>
           <th width="180px">Thu</th>
           <th width="180px">Fri</th>
           <th width="180px" class="optionYellow">Sat</th>
        </tr>

        <c:forEach var="week" begin="1" end="${calendar.totalWeeks}" varStatus="status">
           <tr>
           <c:forEach var="cell" begin="${1+7*(week-1)}" end="${7+7*(week-1)}" step="1" varStatus="status"><c:set var="dayNo" value="${cell-calendar.weekStartDay+1}" />
               <c:choose><c:when test="${calendar.weekStartDay>cell || (cell-calendar.weekStartDay+1)>calendar.totalDays}">
               <td height="50" class="<c:out value="${calendar.cellColor[cell]}" />">*&nbsp;</td>
               </c:when>
               <c:otherwise>
               <td valign="Top" height="75px" class="<c:out value="${calendar.cellColor[dayNo]}" />"><span class="calDayNo"><c:out value="${dayNo}" /></span><span class="calDayName"> <c:out value="${calendar.holidayName[dayNo]}" /></span><br>
               <c:forEach var="dayEvent" items="${eventMap.byDay[dayNo]}" varStatus="status"><div class="eventContent" ><c:out value="${status.count}" />) <c:out value="${dayEvent.event_type_name}" />: <c:out value="${dayEvent.eventUser.lastName}" /></div></c:forEach></td>
               </c:otherwise>
               </c:choose>
           </c:forEach>
           </tr>
        </c:forEach>
     </tbody>
  </table>

在这个bean中,我还存储了一个月份名称数组,这样我就可以在我的视图中执行此操作。

代码语言:javascript
复制
<c:forEach var="month" items="${calendar.monthList}" varStatus="status">
    <option value="<c:out value="${status.index}" />" <c:if test="${month == calendar.monthName}">selected</c:if>><c:out value="${month}" /></option>
</c:forEach>

我的问题是,我是在javabean中设置月份列表,还是在为日历生成元数据的方法中设置月份列表。下面是返回到元数据bean的方法(为了清晰起见,去掉了逻辑)。我应该在这个方法、这个类还是在Java bean中设置它。如果它应该放在Java bean中,我不确定如何做到这一点。

代码语言:javascript
复制
public EBCalendar getCalendarMeta (HttpServletRequest request) {
    //Get any request parameters
    int iYear = STKStringUtils.nullIntconv(request.getParameter("iYear"));
    int iMonth = STKStringUtils.nullIntconv(request.getParameter("iMonth"));
    EBCalendar ebCal = new EBCalendar();

// Get the current month and year
    Calendar ca = new GregorianCalendar();
    int curYear = ca.get(Calendar.YEAR);
    int curMonth = ca.get(Calendar.MONTH);

// If request parameters are null use todays calendar
    if (iYear == 0) {
        iYear = curYear;
        iMonth = curMonth;
    }
    ebCal.setCurYear(curYear);
    ebCal.setCurMonth(curMonth);
    ebCal.setSelYear(iYear);
    ebCal.setSelMonth(iMonth);

    ebCal.setTotalWeeks(iTotalweeks);
    ebCal.setTotalDays(totalDays);
    ebCal.setWeekStartDay(weekStartDay);
    ebCal.setAbvMonthName(abvMonthName);
    ebCal.setMonthName(monthName);
    ebCal.setMonthList(monthList);
    ebCal.setHolidayName(getEBHolidayNameInMonth(iYear, iMonth));
    ebCal.setCellColor(getWeekendHolidayColorMap(iYear, iMonth));

    return ebCal;
}

编辑:以下是我根据接受的答案所做的工作

我改变了这一点:

代码语言:javascript
复制
<c:forEach var="month" items="${calendar.monthList}" varStatus="status">
    <option value="<c:out value="${status.index}" />" <c:if test="${month == calendar.monthName}">selected</c:if>><c:out value="${month}" /></option>
</c:forEach>

要这样做:

代码语言:javascript
复制
<c:set var="months">January,February,March,April,May,June,July,August,September,October,November,December</c:set>
<c:forTokens var="month" items="${months}" delims="," varStatus="status">
  <option value="<c:out value="${status.index}" />" <c:if test="${month == calendar.monthName}">selected</c:if>><c:out value="${month}" /></option>
</c:forTokens>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-05 22:17:58

我认为这里的问题是,您是否应该将默认设置与视图或模型一起使用。我更喜欢将默认设置与模型一起使用,因为您可能会有一个不同的jsp,将来可能会有不同的默认设置。然后,您必须返回并更改模型中的默认设置。我在JSP中投票支持。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4106648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档