- ·上一篇文章:jsp旋转的椭圆
- ·下一篇文章:Jsp之Tag文件和Tag标记
jsp日历实现
-->
编写一个showCalendar.tag,该Tag文件负责显示日历,编写一个jsp页面giveYearMonth.jsp,该jsp页面使用Tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。
运行效果:
giveYearMonth.jsp
1 2 3 4 5 6 7 8 9 10 11 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib tagdir="/WEB-INF/tags" prefix="rili" %> <title>Insert title here</title> </head> <body> <p>调用Tag文件来显示日历</p> <rili:ShowCalendar year="2015" month="10" /> </body> </html> |
ShowCalendar.tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <%@ tag language="java" pageEncoding="UTF-8"%> <%@ tag import="java.util.*"%> <%@ attribute name="year" required="true"%> <%@ attribute name="month" required="true"%> <% int y = 1991; int m = 1; String[] day = new String[42]; try { y = Integer.parseInt(year); m = Integer.parseInt(month); Calendar rili = Calendar.getInstance(); rili.set(y, m - 1, 1); int data = rili.get(Calendar.DAY_OF_WEEK) - 1; int dayAmount = 0; if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) dayAmount = 31; if (m == 2 || m == 4 || m == 6 || m == 9 || m == 11) dayAmount = 30; if (m == 2) if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) dayAmount = 29; else dayAmount = 28; for (int i = 0; i < data; i++) day[i] = "--"; for (int i = data, n = 1; i < data + dayAmount; i++) { day[i] = String.valueOf(n); n++; } for (int i = data + dayAmount; i < 42; i++) day[i] = "--"; } catch (Exception e) { out.println("年份或月份不合理。"); } %> <h3><%=year%>年<%=month%>月的日历: </h3> <table border=1> <tr> <th>星期日</th> <th>星期一</th> <th>星期二</th> <th>星期三</th> <th>星期四</th> <th>星期五</th> <th>星期六</th> </tr> <% for (int n = 0; n < day.length; n = n + 7) { %> <tr> <% for (int i = n; i < 7 + n; i++) { %> <td><%=day[i]%></td> <% } %> </tr> <% } %> </table> |
jsp日历实现