Java 用于显示大型事件类型日历的JSP自定义标记

Java 用于显示大型事件类型日历的JSP自定义标记,java,spring,jsp,spring-mvc,jodatime,Java,Spring,Jsp,Spring Mvc,Jodatime,这可能是一个简单的问题,但每个人都在使用什么在jsp中显示一个简单的事件日历呢。我正在寻找一个现有的taglib,但除了calendarTag之外,没有找到其他任何东西 我使用的是SpringMVC3.0,JodaTime。基本上我只想在jsp上有一个大的日历,在这里我可以根据一些逻辑包含到另一个寻呼机的链接。没什么特别的 有什么想法吗?我会在控制器中创建日历,例如: @Controller public class CalendarController{ private static

这可能是一个简单的问题,但每个人都在使用什么在jsp中显示一个简单的事件日历呢。我正在寻找一个现有的taglib,但除了calendarTag之外,没有找到其他任何东西

我使用的是SpringMVC3.0,JodaTime。基本上我只想在jsp上有一个大的日历,在这里我可以根据一些逻辑包含到另一个寻呼机的链接。没什么特别的


有什么想法吗?

我会在控制器中创建日历,例如:

@Controller
public class CalendarController{

    private static final int START_OF_WEEK = DateTimeConstants.MONDAY;

    @RequestMapping("drawCalendar")
    public ModelAndView drawCalendar(@RequestParam("month") final int month,
        @RequestParam("year") final int year){
        final LocalDate monthStart = new LocalDate(year, month, 1);
        boolean endReached = false;
        LocalDate today = null;
        final List<List<LocalDate>> weeks1 = new ArrayList<List<LocalDate>>();
        while(!endReached){
            final List<LocalDate> thisWeek = new ArrayList<LocalDate>();
            for(int weekOffset = 0; weekOffset < 7; weekOffset++){
                if(today == null){
                    if(!endReached
                        && weekOffset == monthStart.getDayOfWeek()
                            - START_OF_WEEK){
                        today = monthStart;
                    }
                } else{
                    today = today.plusDays(1);
                    if(today.getMonthOfYear() != month){
                        today = null;
                        endReached = true;
                    }
                }
                thisWeek.add(today);
            }
            weeks1.add(thisWeek);
        }
        final List<List<LocalDate>> weeks = weeks1;

        final Map<String, Object> model = new HashMap<String, Object>();
        model.put("calendar", weeks);
        final ModelAndView modelAndView = new ModelAndView("calendar", model);
        return modelAndView;
    }
}
@控制器
公共类日历控制器{
private static final int START_OF_WEEK=DateTimeConstants.MONDAY;
@请求映射(“drawCalendar”)
公共模型和视图绘图日历(@RequestParam(“月”)最终整数月,
@请求参数(“年”)最终整数年){
最终LocalDate monthStart=新的LocalDate(年、月、1);
布尔值endreach=false;
localdatetoday=null;
最终列表周1=新建ArrayList();
而(!endreach){
本周最终列表=新建ArrayList();
对于(int-weekOffset=0;weekOffset<7;weekOffset++){
如果(今天==null){
如果(!endreach)
&&weekOffset==monthStart.getDayOfWeek()
-开始(每周){
今天=月初;
}
}否则{
今天=今天。星期四(1);
如果(今天。getMonthOfYear()!=月份){
今天=零;
endreach=true;
}
}
本周。添加(今天);
}
周1.添加(本周);
}
最终列表周=周1;
最终映射模型=新HashMap();
模型。投入(“日历”,周);
最终模型和视图模型和视图=新模型和视图(“日历”,模型);
返回模型和视图;
}
}
在JSP中,我将在几周内迭代:

<c:forEach items="${calendar}" var="week">
    <tr>
        <td>Mon</td>
        <td>Tue</td>
        <td>Wed</td>
        <td>Thu</td>
        <td>Fri</td>
        <td>Sat</td>
        <td>Sun</td>
    </tr>
    <tr>
        <c:forEach items="${week}" var="date">
            <td><c:out value="${date==null ? '' : date.dayOfWeek}"</td>
        </c:forEach>
    </tr>
</c:forEach>

周一
星期二
结婚
清华大学
星期五
坐
太阳

您对JSF和/或jQuery开放吗?有很多标签(组件)和/或插件可供使用。SpringMVC并不是真正的面向UI组件的MVC,它更像是一个面向HTTP请求/操作的MVC。我认为jquery也是一个不错的选择。