JSP自定义日历标签
1.配置文件:
将jstl.jar和standard.jar两jar包配置到WEB-INF下的lib目录或是根目录下的lib目录下。
2.配置tld文件
calendar.tld --->文件名任意
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
1.0
2.0
jr
calendar@huaiyu.com
calendar
com.kettas.servlet.TagCalendar
empty
name指定标签名
tag -class标签名于相应的类对应
3.类文件 :TagCalendar.java
package com.kettas.servlet;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspWriter;
public class TagCalendar extends TagSupport {
private static final long serialVersionUID = -7677534442361565504L;
@Override
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
StringBuffer sCalendar = new StringBuffer();
GregorianCalendar gc = new GregorianCalendar();
int today = gc.get(Calendar.DAY_OF_MONTH);
int month = gc.get(Calendar.MONTH);
int year = gc.get(Calendar.YEAR);
String days[] = new String[42];
for (int i = 0; i < 42; i++) {
days[i] = "";
}
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.MONTH, month); // 设置当月
cal.set(Calendar.YEAR, year); // 设置当年
cal.setFirstDayOfWeek(Calendar.SUNDAY);// 设置星期天开始
cal.set(Calendar.DAY_OF_MONTH, 1); // 设置1号
int firstIndex = cal.get(Calendar.DAY_OF_WEEK) - 1; // 取得当月1号所在的星期数
int maxIndex = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 取得当月的最大天数
for (int i = 0; i < maxIndex; i++) {
days[firstIndex + i] = String.valueOf(i + 1);
}
try {
sCalendar.append("
留言。。