网页:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<form action="index.jsp"><select name='year'>
<option value=2007>2007</option>
<option value=2008>2008</option>
<option value=2009>2009</option>
<option value=2010>2010</option>
<option value=2011>2011</option>
<option value=2012 selected>2012</option>
</select> <select name='month'>
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
</select> <input type='submit' value='ok' name='submit'></form>
<mytag:calendar style="sun"></mytag:calendar></div>
</body>
</html>
2、利用属性传递变量名称
标签类:
package taglib;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CalendarTag extends TagSupport {
String style = "";
String cssFilePath = "";
String year = "";
String msky"))
cssFilePath = "css1.css";
else
cssFilePath = "css2.css";
}
public void setYear(String year) {
this.year = year;
}
public void setMonth(String month) {
this.month = month;
}
public int doEndTag() throws JspException {
try {
String year = pageContext.getRequest().getParameter(this.year);
String month = pageContext.getRequest().getParameter(this.month);
pageContext.getOut().print(
"<link rel=stylesheet href='" + cssFilePath
+ "' type='text/css'>");
java.text.DecimalFormat myformat = new java.text.DecimalFormat("00");//
java.util.GregorianCalendar gregorianCalendar = new java.util.GregorianCalendar();
int j = 1;
if (year != null && month != null) {
gregorianCalendar.set(gregorianCalendar.YEAR, Integer
.parseInt(year));
gregorianCalendar.set(gregorianCalendar.MONTH, Integer
.parseInt(month) - 1);
}
int maxDay = gregorianCalendar
.getActualMaximum(gregorianCalendar.DAY_OF_MONTH);
gregorianCalendar.set(gregorianCalendar.DAY_OF_MONTH, 1);
int space = gregorianCalendar.get(gregorianCalendar.DAY_OF_WEEK);
int counter = space - 1;
String[] days = new String[counter + maxDay];
for (int i = 0; i < counter; i++) {
days[i] = " ";
}
for (int i = counter; i < counter + maxDay; i++) {
days[i] = myformat.format(j);
j++;
}
pageContext.getOut().print("<table>");
pageContext.getOut().print("<tr class='headerStyle'>");
pageContext
.getOut()
.print(
"<td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td>");
pageContext.getOut().print("</tr>");
pageContext.getOut().print("<tr class='textStyle'>");
int m = 1;
for (int i = 0; i < counter + maxDay; i++) {
pageContext.getOut().print("<td>" + days[i] + "</td>");
if ((m++) % 7 == 0)
pageContext.getOut().print("</tr><tr class='textStyle'>");
}
pageContext.getOut().print("</tr>");
pageContext.getOut().print("</table>");
} catch (Exception e) {
throw new JspException(e.toString());
}
return EVAL_PAGE;
}
}
标签描述文件:
<?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">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname></shortname>
<uri></uri>
<info></info>
<tag>
<name>calendar</name>
<tagclass>taglib.CalendarTag</tagclass>
<attribute>
<name>style</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>year</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>month</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
网页:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<form action="index.jsp"><select name='syear'>
<option value=2007>2007</option>
<option value=2008>2008</option>
<option value=2009>2009</option>
<option value=2010>2010</option>
<option value=2011>2011</option>
<option value=2012 selected>2012</option>
</select> <select name='smonth'>
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
</select> <input type='submit' value='ok' name='submit'></form>
<mytag:calendar style="sun" year="syear" m></mytag:calendar></div>
</body>
</html>
3、利用属性传递变量值
标签类:
package taglib;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CalendarTag extends TagSupport {
String style = "";
String cssFilePath = "";
int year = -1;
int month = -1;
public void setStyle(String style) {
this.style = style;
if (style.toLowerCase().equals("sky"))
cssFilePath = "css1.css";
else
cssFilePath = "css2.css";
}
public void setYear(String year) {
if (year != null)
this.year = Integer.parseInt(year);
}
public void setMonth(String month) {
if (month != null)
this.month = Integer.parseInt(month);
}
public int doEndTag() throws JspException {
try {
pageContext.getOut().print(
"<link rel=stylesheet href='" + cssFilePath
+ "' type='text/css'>");
java.text.DecimalFormat myformat = new java.text.DecimalFormat("00");//
java.util.GregorianCalendar gregorianCalendar = new java.util.GregorianCalendar();
int j = 1;
if (year != -1 && month != -1) {
gregorianCalendar.set(gregorianCalendar.YEAR, year);
gregorianCalendar.set(gregorianCalendar.MONTH, month - 1);
}
int maxDay = gregorianCalendar
.getActualMaximum(gregorianCalendar.DAY_OF_MONTH);
gregorianCalendar.set(gregorianCalendar.DAY_OF_MONTH, 1);
int space = gregorianCalendar.get(gregorianCalendar.DAY_OF_WEEK);
int counter = space - 1;
String[] days = new String[counter + maxDay];
for (int i = 0; i < counter; i++) {
days[i] = " ";
}
for (int i = counter; i < counter + maxDay; i++) {
days[i] = myformat.format(j);
j++;
}
pageContext.getOut().print("<table>");
pageContext.getOut().print("<tr class='headerStyle'>");
pageContext
.getOut()
.print(
"<td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td>");
pageContext.getOut().print("</tr>");
pageContext.getOut().print("<tr class='textStyle'>");
int m = 1;
for (int i = 0; i < counter + maxDay; i++) {
pageContext.getOut().print("<td>" + days[i] + "</td>");
if ((m++) % 7 == 0)
pageContext.getOut().print("</tr><tr class='textStyle'>");
}
pageContext.getOut().print("</tr>");
pageContext.getOut().print("</table>");
} catch (Exception e) {
throw new JspException(e.toString());
}
return EVAL_PAGE;
}
}
标签描述文件:
<?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">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname></shortname>
<uri></uri>
<info></info>
<tag>
<name>calendar</name>
<tagclass>taglib.CalendarTag</tagclass>
<attribute>
<name>style</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>year</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>month</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
网页:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<form action="index.jsp"><select name='syear'>
<option value=2007>2007</option>
<option value=2008>2008</option>
<option value=2009>2009</option>
<option value=2010>2010</option>
<option value=2011>2011</option>
<option value=2012 selected>2012</option>
</select> <select name='smonth'>
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
</select> <input type='submit' value='ok' name='submit'></form>
<mytag:calendar style="sun" year='<%=request.getParameter("syear")%>'
m></mytag:calendar></div>
</body>
</html>
4、利用属性传递变量值(写成EL的写法)
为了防止开始参数无值带来的影响,将网页做成两个
标签类:
package taglib;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CalendarTag extends TagSupport {
String style = "";
String cssFilePath = "";
int year = -1;
int month = -1;
public void setStyle(String style) {
this.style = style;
if (style.toLowerCase().equals("sky"))
cssFilePath = "css1.css";
else
cssFilePath = "css2.css";
}
public void setYear(String year) {
if (year != null)
this.year = Integer.parseInt(year);
}
public void setMonth(String month) {
if (month != null)
this.month = Integer.parseInt(month);
}
public int doEndTag() throws JspException {
try {
pageContext.getOut().print(
"<link rel=stylesheet href='" + cssFilePath
+ "' type='text/css'>");
java.text.DecimalFormat myformat = new java.text.DecimalFormat("00");//
java.util.GregorianCalendar gregorianCalendar = new java.util.GregorianCalendar();
int j = 1;
if (year != -1 && month != -1) {
gregorianCalendar.set(gregorianCalendar.YEAR, year);
gregorianCalendar.set(gregorianCalendar.MONTH, month - 1);
}
int maxDay = gregorianCalendar
.getActualMaximum(gregorianCalendar.DAY_OF_MONTH);
gregorianCalendar.set(gregorianCalendar.DAY_OF_MONTH, 1);
int space = gregorianCalendar.get(gregorianCalendar.DAY_OF_WEEK);
int counter = space - 1;
String[] days = new String[counter + maxDay];
for (int i = 0; i < counter; i++) {
days[i] = " ";
}
for (int i = counter; i < counter + maxDay; i++) {
days[i] = myformat.format(j);
j++;
}
pageContext.getOut().print("<table>");
pageContext.getOut().print("<tr class='headerStyle'>");
pageContext
.getOut()
.print(
"<td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td>");
pageContext.getOut().print("</tr>");
pageContext.getOut().print("<tr class='textStyle'>");
int m = 1;
for (int i = 0; i < counter + maxDay; i++) {
pageContext.getOut().print("<td>" + days[i] + "</td>");
if ((m++) % 7 == 0)
pageContext.getOut().print("</tr><tr class='textStyle'>");
}
pageContext.getOut().print("</tr>");
pageContext.getOut().print("</table>");
} catch (Exception e) {
throw new JspException(e.toString());
}
return EVAL_PAGE;
}
}
标签描述文件:
<?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">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname></shortname>
<uri></uri>
<info></info>
<tag>
<name>calendar</name>
<tagclass>taglib.CalendarTag</tagclass>
<attribute>
<name>style</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>year</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>month</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
网页index.jsp:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<form action="result.jsp"><select name='syear'>
<option value=2007>2007</option>
<option value=2008>2008</option>
<option value=2009>2009</option>
<option value=2010>2010</option>
<option value=2011>2011</option>
<option value=2012 selected>2012</option>
</select> <select name='smonth'>
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
</select> <input type='submit' value='ok' name='submit'></form>
</div>
</body>
</html>
网页result.jsp:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<mytag:calendar style="sun" year='${param.syear}'
m></mytag:calendar></div>
</body>
</html>
5、利用JavaBean传递
JavaBean类:
package javabeans;
public class MyDate {
String year;
String month;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
}
标签类:
package taglib;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CalendarTag extends TagSupport {
String style = "";
String cssFilePath = "";
int year = -1;
int month = -1;
public void setStyle(String style) {
this.style = style;
if (style.toLowerCase().equals("sky"))
cssFilePath = "css1.css";
else
cssFilePath = "css2.css";
}
public void setYear(String year) {
if (year != null)
this.year = Integer.parseInt(year);
}
public void setMonth(String month) {
if (month != null)
this.month = Integer.parseInt(month);
}
public int doEndTag() throws JspException {
try {
pageContext.getOut().print(
"<link rel=stylesheet href='" + cssFilePath
+ "' type='text/css'>");
java.text.DecimalFormat myformat = new java.text.DecimalFormat("00");//
java.util.GregorianCalendar gregorianCalendar = new java.util.GregorianCalendar();
int j = 1;
if (year != -1 && month != -1) {
gregorianCalendar.set(gregorianCalendar.YEAR, year);
gregorianCalendar.set(gregorianCalendar.MONTH, month - 1);
}
int maxDay = gregorianCalendar
.getActualMaximum(gregorianCalendar.DAY_OF_MONTH);
gregorianCalendar.set(gregorianCalendar.DAY_OF_MONTH, 1);
int space = gregorianCalendar.get(gregorianCalendar.DAY_OF_WEEK);
int counter = space - 1;
String[] days = new String[counter + maxDay];
for (int i = 0; i < counter; i++) {
days[i] = " ";
}
for (int i = counter; i < counter + maxDay; i++) {
days[i] = myformat.format(j);
j++;
}
pageContext.getOut().print("<table>");
pageContext.getOut().print("<tr class='headerStyle'>");
pageContext
.getOut()
.print(
"<td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td>");
pageContext.getOut().print("</tr>");
pageContext.getOut().print("<tr class='textStyle'>");
int m = 1;
for (int i = 0; i < counter + maxDay; i++) {
pageContext.getOut().print("<td>" + days[i] + "</td>");
if ((m++) % 7 == 0)
pageContext.getOut().print("</tr><tr class='textStyle'>");
}
pageContext.getOut().print("</tr>");
pageContext.getOut().print("</table>");
} catch (Exception e) {
throw new JspException(e.toString());
}
return EVAL_PAGE;
}
}
标签描述文件:
<?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">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname></shortname>
<uri></uri>
<info></info>
<tag>
<name>calendar</name>
<tagclass>taglib.CalendarTag</tagclass>
<attribute>
<name>style</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>year</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>month</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
网页index.jsp:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<html>
<head>
</head>
<body>
<jsp:useBean id="md" class="javabeans.MyDate" scope="session"></jsp:useBean>
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<form action="result.jsp"><select name='syear'>
<option value=2007>2007</option>
<option value=2008>2008</option>
<option value=2009>2009</option>
<option value=2010>2010</option>
<option value=2011>2011</option>
<option value=2012 selected>2012</option>
</select> <select name='smonth'>
<option value=1 selected>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
</select> <input type='submit' value='ok' name='submit'></form>
</div>
</body>
</html>
网页result.jsp:
<%@page c%>
<%@ taglib prefix="mytag" uri="mytags.tld"%>
<%@page import="javabeans.MyDate"%>
<html>
<head>
</head>
<body>
<jsp:setProperty name="md" property="year" value='${param.syear}' />
<jsp:setProperty name="md" property="month" value='${param.smonth}' />
<div id="Layer1"
style="position: absolute; width: 200px; height: 115px; z-index: 1; left: 284px; top: 158px;">
<mytag:calendar style="sun" year='${md.year}'
m>
</mytag:calendar></div>
</body>
</html>
<!-- error -->
<%-- <mytag:calendar style="sun" year=<jsp:getProperty name="md" property="year"/>
month=<jsp:getProperty name="md" property="month"/>></mytag:calendar>--%>