当前位置:K88软件开发文章中心编程全书编程全书02 → 文章内容

jsp日历实现

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 8:17:56

-->

编写一个showCalendar.tag,该Tag文件负责显示日历,编写一个jsp页面giveYearMonth.jsp,该jsp页面使用Tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。

运行效果:

jsp日历 bestcoder编程学习网

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日历实现