第 十 讲 修改和获取Beans的属性 | ||||
教学目的: 本讲继续讲述 JSP 中使用 Javabeans 。 知识要点 1.获取和修改beans的属性 2.带包名的beans 3.JSP与beans结合的简单例子 10.1 获取和修改beans的属性 当我们使用 useBean 动作标签创建一个beans后,在java程序片中这个beans就可以调用方法产生行为,比如修改属性,使用类的中的方法等,如前面的例子1、2、3所示。获取或修改beans的属性还可以使用动作标签getProperty 、 setProperty ,下面讲述怎样使用JSP的动作标签去获取和修改 beans 的属性。 10.1.1 getProperty动作标签 使用该标签可以获得 beans 的属性值,并将这个值用串的形式显示给客户。使用这个标签之前,必须使用 useBean 标签获取得到一个 beans getProperty 动作标签: <jsp:getProperty name= “beans 的名字 ” property= “beans 的属性 ” /> 或 <jsp:getProperty name= “beans 的名字 ” property= “beans 的属性 ” /> </jsp:getProperty> 其中, name 取值是 beans 的名字,用来指定要获取哪个 beans 的属性的值; property 取值是该 beans 的一个属性的名字。该指令的作用相当于在程序片中使用 beans 调用 getXxx() 方法。 现在,我们将 Circle 类文件给予改进,增加 circleArea 和 circleLength 两个属性。 Circle2.java : import java.io.*; public class Circle2 { double radius=1; double circleArea=0; double circleLength=0; public double getRadius() { return radius; } public void setRadius(double newRadius) {radius=newRadius; } public double getCircleArea() {circleArea=Math.PI*radius*radius; return circleArea; } public double getCircleLength() { circleLength=2.0*Math.PI*radius; return circleLength; } } 在下面的 JSP 页面中使用 useBean 标签,用 Circle2 类创建一个名字是 apple 的 beans 。并使用 getProperty 获取 apple 的各个属性的值。把 Circle2.java 编译生成的字节码 Circle2.class 文件拷贝到 JSP 引擎的 classes 文件下。本书所使用的机器的该目录是: D:\tomcat\Jakarta-tomcat-4.0\classes 例子 1 (效果如图10.1所示) ![]() beansGetproperty.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Circle2"%> <HTML> <BODY bgcolor=cyan><Font size=1> <jsp:useBean id="apple" class="Circle2" scope="page" > </jsp:useBean> <%apple.setRadius(100);%> <P> 圆的半径是: <jsp:getProperty name= "apple" property= "radius" /> <P> 圆的面积是: <jsp:getProperty name= "apple" property= "circleArea" /> <P> 圆的周长是: <jsp:getProperty name= "apple" property= "circleLength" /> </BODY> </HTML> 10.1.2 setProperty动作标签 使用该标签可以设置 beans 的属性值。使用这个标签之前,必须使用 useBean 标签得到一个可操作的 beans 。 setProperty 动作标签可以通过 3 种方式设置 beans 属性的值。 (1)将 benas 属性的值设置为一个表达式的值或字符串。 这种方式不如后面的两种方式方便,但当涉及属性值是汉字时,使用这种方式更好一些。 benas 属性的值设置为一个表达式的值: <jsp:setProperty name=“beans 的名字 ” property= “beans 的属性 ” value= “<%=expression%>” /> benas 属性的值设置为一个字符串: <jsp:setProperty name=“beans 的名字 ” property= “beans 的属性 ” value= 字符串 /> 如果将表达式的值设置为 beans 属性的值,表达式值的类型必须和 beans 的属性的类型一致。如果将字符串设置为 beans 的属性的值,这个字符串会自动被转化为 beans 的属性的类型。 Java 语言将字符串转化为其它数值类型的方法如下: 转化到 int : Integer.parseInt(Sting s) , 转化到 long : Long.parseInt(Sting s) , 转化到 float : Float.parseInt(Sting s) , 转化到 double : Double.parseInt(Sting s) , 这些方法都可能发生 NumberFormatException 异常,例如,当试图将字符串:“ ab23 ”转化为 int 型数据时就发生了 NumberFormatException 。 在下面的例子中,我们写了一个描述学生的 beans ,在一个 JSP 页面中获得一个这样的 beans ,其有效范围是 page 。在 JSP 页面中使用动作标签设置、获取该 beans 的属性。 创建 beans的源文件 Student.java : public class Student { String name=null; long number; double height,weight; public String getName() { return name; } public void setName(String newName) {name=newName; } public long getNumber() {return number; } public void setNumber(long newNumber) { number=newNumber; } public double getHeight() {return height; } public void setHeight(double newHeight) { height=newHeight; } public double getWeight() {return weight; } public void setWeight(double newWeight) { weight=newWeight; } } 例子 2 student.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Student"%> <HTML> <BODY bgcolor=cyan><Font size=1> <jsp:useBean id="zhang" class="Student" scope="page" > </jsp:useBean> <jsp:setProperty name= "zhang" property="name" value=" 张小三 " /> <P> 名字是: <jsp:getProperty name= "zhang" property="name" /> <jsp:setProperty name= "zhang" property="number" value="1999001" /> <P> 学号是: <jsp:getProperty name= "zhang" property="number" /> <% double height=1.70; %> <jsp:setProperty name= "zhang" property="height" value="<%=height+0.05%>" /> <P> 身高是: <jsp:getProperty name= "zhang" property="height" /> 米 <jsp:setProperty name= "zhang" property="weight" value="67.65" /> <P> 体重是: <jsp:getProperty name= "zhang" property="weight" /> 公斤 </FONT> </BODY> </HTML> (2)使用 setProperty 设置 beans 属性值的第 2 种方式是:通过 HTTP 表单的参数的值来设置 beans 的相应属性的值,要求表单参数名字必须与 beans 属性的名字相同, JSP 引擎会自动将字符串转换为 beans 属性的类型。 <jsp:setProperty name= "beans 的名字 " property="*" /> 该标签不用再具体指定 beans 属性的值将对应表单中哪个参数指定的值,系统会自动根据名字进行般配对应。 下面的例子 3 通过表单来指定 beans 的属性值。由于客户可能提交汉语的姓名,所以我们将 Student.java 文件中的 getName 方法做以下改进: public String getName() { try {byte b[]=name.getBytes("ISO-8859-1"); name=new String(b); return name; } catch(Exception e) { return name; } } 例子 3 student2.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Student"%> <HTML> <BODY ><Font size=1> <FORM action="" Method="post" > <P> 输入学生的姓名 : <Input type=text name="name"> <P> 输入学生的学号 : <Input type=text name="number"> <P> 输入学生的身高 : <Input type=text name="height"> <P> 输入学生的体重 : <Input type=text name="weight"> <Input type=submit value=" 提交 "> </FORM> <jsp:useBean id="zhang" class="Student" scope="page" > </jsp:useBean> <jsp:setProperty name= "zhang" property="*" /> <P> 名字是: <jsp:getProperty name= "zhang" property="name" /> <P> 学号是: <jsp:getProperty name= "zhang" property="number" /> <P> 身高是: <jsp:getProperty name= "zhang" property="height" /> 米 <P> 体重是: <jsp:getProperty name= "zhang" property="weight" /> 公斤 </FONT> </BODY> </HTML> 注:需要注意的是,只有提交了和该 beans相对应的表单后,该指令标签才被执行。 注:使用这种方式设置和获取 beans的值很方便,我们把汉字的处理放在了beans中,但需要注意的是,如果使用第1种方式,不要在beans中处理汉字,而应当在JSP页面中处理。 (3)使用 setProperty 设置 beans 属性值的第 3 种方式是:通过 request 的参数的值来设置 beans 的相应属性的值,要求 request 参数名字必须与 beans 属性的名字相同, JSP 引擎会自动将 request 获取的字符串数据类型转换为 beans 相应的属性的类型。 <jsp:setProperty name= "beans 的名字 " property=" 属性名 " param= “ 参数名 ” /> 下面的例子 4 说明使用 request 参数设置 beans 的属性的值。 例子 4 student3.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Student"%> <HTML> <BODY bgcolor=yellow><Font size=1> <FORM action="" Method="post" > <P> 输入学生的姓名 : <Input type=text name="name"> <P> 输入学生的学号 : <Input type=text name="number"> <P> 输入学生的身高 : <Input type=text name="height"> <P> 输入学生的体重 : <Input type=text name="weight"> <BR> <Input type=submit value=" 提交 "> </FORM> <jsp:useBean id="zhang" class="Student" scope="page" > </jsp:useBean> <jsp:setProperty name= "zhang" property="name" param="name" /> <P> 名字是: <jsp:getProperty name= "zhang" property="name" /> <jsp:setProperty name= "zhang" property="number" param="number" /> <P> 学号是: <jsp:getProperty name= "zhang" property="number" /> <% double height=1.70; %> <jsp:setProperty name= "zhang" property="height" param="height" /> <P> 身高是: <jsp:getProperty name= "zhang" property="height" /> 米 <jsp:setProperty name= "zhang" property="weight" param="weight" /> <P> 体重是: <jsp:getProperty name= "zhang" property="weight" /> 公斤 </FONT> </BODY> </HTML> 注:需要注意的是,只有提交了和该 beans相对应的表单后,该指令标签才被执行。 注:不能在 <jsp:setProperty>中同时使用value和param。 10.2 带包名的beans 在写一个 beans 的 java 文件时,可以使用 package 语句给 beans 一个包名。包名可以是一个合法的标识符,也可以是若干个标识符加“ . ”分割而成,如: package gping; package tom.jiafei; 程序如果使用了包语句,例如 package tom.jiafei; 那么必须在 classes 目录下有如下的子目录,例如,在 D:\Tomcat\jakarta-tomcat-4.0\classes 下再建立如下的目录结构。 \tom\jiafei 并将 beans 的字节码文件存在该目录中,如图 10.2 所示。 ![]() 假如有一个包名是 tom.jiafei 的类 Primnumber ,如果在 JSP 页面中使用这个 beans ,必须有如下的语句: <%@ import = “tom.jiafei.* ”> 或 <%@ import = “tom.jiafei.PrimNumber ”> 求素数的 beans PrimNumber.java : package tom.jiafei; public class PrimNumber { int number; StringBuffer result; public PrimNumber() { result=new StringBuffer(); } public void setNumber(int n) { number=n; int i,j; for( i=2;i<=number;i++) // 找出 number 以内的素数。 {for(j=2;j<i;j++) {if(i%j==0) break; } if(j>=i) result.append(""+i+"<BR>"); } } public int getNumber() {return number; } public StringBuffer getResult() { return result; } } 例子 5 使用求素数 beans的JSP页面 primnumber.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="tom.jiafei.*" %> <HTML> <BODY bgcolor=cyan><Font size=1> <FORM action="" Method="post" > <P> 输入一个正整数 : <Input type=text name="number"> <Input type=submit value=" 提交 "> <jsp:useBean id="prim" class="tom.jiafei.PrimNumber" scope="page" > </jsp:useBean> <jsp:setProperty name= "prim" property="number" param="number" /> <P> 小于 <jsp:getProperty name= "prim" property="number" /> 这个数的全部素数是: <BR> <jsp:getProperty name= "prim" property="result" /> </Font> </BODY> </HTML> 10.3 JSP与beans结合的简单例子 10.3.1三角形beans 三角形 beans Triangle.java : public class Triangle { double sideA,sideB,sideC; double area; boolean triangle; public void setSideA(double a) {sideA=a; } public double getSideA() {return sideA; } public void setSideB(double b) {sideB=b; } public double getSideB() {return sideB; } public void setSideC(double c) {sideC=c; } public double getSideC() {return sideC; } public double getArea() { double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)); return area; } public boolean isTriangle() { if(sideA<sideB+sideC&&sideB<sideA+sideC&&sideC<sideA+sideB) triangle=true; else triangle=false; return triangle; } } 使用三角形 beans的JSP页面: triangle.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Triangle"%> <HTML> <BODY ><Font size=1> <FORM action="" Method="post" > <P> 输入三角形的边 A: <Input type=text name="sideA" value=0> <P> 输入三角形的边 B: <Input type=text name="sideB" value=0> <P> 输入三角形的边 C: <Input type=text name="sideC" value=0> <Input type=submit value=" 提交 "> <P> 你给出三角形的三边是: <jsp:useBean id="triangle" class="Triangle" scope="page" > </jsp:useBean> <jsp:setProperty name= "triangle" property="*" /> <BR> 边 A 是: <jsp:getProperty name= "triangle" property="sideA" /> <BR> 边 B 是: <jsp:getProperty name= "triangle" property="sideB" /> <BR> 边 C 是: <jsp:getProperty name= "triangle" property="sideC" /> <P> 这三个边能构成一个三角形吗? <jsp:getProperty name= "triangle" property="triangle" /> <P> 面积是: <jsp:getProperty name= "triangle" property="area" /> </FONT> </BODY> </HTML> 10.3.2 计数器beans 计数器 beans 是一个 application 范围的 beans ,所有的客户共享这个 beans ,任何客户改变这个 beans 的属性值,都会对其它客户产生影响。计数器 beans 有一个记录访问次数的属性 count 。 Counter.java : public class Counter { long count=0; public synchronized long getCount() {count++; return count; } } count.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="Counter"%> <HTML> <BODY ><Font size=1> <jsp:useBean id="people" class="Counter" scope="application" > </jsp:useBean> <% if(session.isNew()) { %> <P> 您是第 <jsp:getProperty name= "people" property="count" /> 位访问本站的人 <% } else { out.print(" 禁止通过刷新增加计数! "); } %> </FONT> </BODY> </HTML> 10.3.3 猜数字beans 当客户访问 getNumber.jsp 页面时,随机获取一个 1 到 100 之间的整数,由客户去猜测这个数是多少。 GuessNumber.java : public class GuessNumber { int answer=0, // 实际答案。 guessNumber=0, // 客户猜测的数。 guessCount=0; // 客户猜到正确答案之前所用的次数。 String result=null; public void setAnswer(int n) { answer=n; guessCount=0; } public int getAnswer() {return answer; } public void setGuessNumber(int n) { guessNumber=n; guessCount++; if(guessNumber==answer) result=" 恭喜,猜对了 "; else if(guessNumber>answer) result=" 猜大了 "; else if(guessNumber<answer) result=" 猜小了 "; } public int getGuessNumber() {return guessNumber; } public int getGuessCount() {return guessCount; } public String getResult() {return result; } } 获取一个随机数页面 : getNumber.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="GuessNumber" %> <HTML> <BODY> <% int n=(int)(Math.random()*100)+1;%> <jsp:useBean id="guess" class="GuessNumber" scope="session" > </jsp:useBean> <jsp:setProperty name= "guess" property="answer" value="<%=n%>" /> <p> 随机给你一个 1 到 100 之间的数,请猜测这个数是多少? <% String str=response.encodeRedirectURL("guess.jsp"); %> <Form action="<%=str%>" method=post > <BR> 输入你的猜测 <Input type=text name="guessNumber"> <Input type=submit value=" 提交 "> </FORM> </BODy> 猜数页面 guess.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="GuessNumber" %> <HTML> <BODY> <jsp:useBean id="guess" class="GuessNumber" scope="session" > </jsp:useBean> <jsp:setProperty name= "guess" property="guessNumber" param="guessNumber" /> <BR> <jsp:getProperty name= "guess" property="result" /> <br> 这是第 <jsp:getProperty name= "guess" property="guessCount" /> 猜 <BR> 你给出的数是 <jsp:getProperty name= "guess" property="guessNumber" /> <% String str=response.encodeRedirectURL("guess.jsp"); %> <Form action="<%=str%>" method=post > <BR> 再输入你的猜测 <Input type=text name="guessNumber"> <Input type=submit value=" 提交 "> </FORM> <% String str1=response.encodeRedirectURL("getNumber.jsp"); %> <BR><FORM action="<%=str1%>" method="post" name="f"> <Input type="submit" value=" 重新玩 "> </FORM> </BODy> </HTML> 10.3.4 购物车beans Car1.java : import java.util.*; import java.io.*; public class Car1 implements Serializable { Hashtable list=new Hashtable(); String item="Welcome!"; int mount=0; String unit=null; public void Car1() { } public void setItem(String newItem) { item=newItem; } public void setUnit(String newUnit) { unit=newUnit; } public void setMount(int m) { mount=m; } public void 添加商品到购物车 () { String str="Name: "+item+" Mount:"+mount+" Unit:"+unit; list.put(item,str); } public Hashtable 列出购物车中的商品 () { return list; } public void 删除货物 (String s) { list.remove(s); } } 选择物品页面 : car.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %> <%@ page import="Car1" %> <HTML> <BODY ><Font size=1> <jsp:useBean id="car1" class="Car1" scope="session" > </jsp:useBean> <P> 这里是第一百货商场,选择您要购买的商品添加到购物车: <% String str=response.encodeRedirectURL("add.jsp"); %> <FORM action="<%=str%>" method=post name=form> <Select name="item" value=" 没选择 "> <Option value="TV"> 电视机 <Option value="apple"> 苹果 <Option value="coke"> 可口可乐 <Option value="milk"> 牛奶 <Option value="tea"> 茶叶 </Select> <P> 输入购买的数量 : <Input type=text name="mount"> <P> 选择计量单位: <INPUT type="radio" name="unit" value=" 个 "> 个 <INPUT type="radio" name="unit" value=" 公斤 "> 公斤 <INPUT type="radio" name="unit" value=" 台 "> 台 <INPUT type="radio" name="unit" value=" 瓶 "> 瓶 <Input type=submit value=" 提交添加 "> </FORM> <P> 您的购物车有如下商品: <% Hashtable list=car1. 列出购物车中的商品 (); Enumeration enum=list.elements(); while(enum.hasMoreElements()) { String goods=(String)enum.nextElement(); byte b[]=goods.getBytes("ISO-8859-1"); goods=new String(b); out.print("<BR>"+goods); } %> <% String str1=response.encodeRedirectURL("selectRemovedGoods.jsp"); %> <FORM action="<%=str1%>" method=post name=form> <Input type=submit value=" 修改购物车中的货物 "> </FORM> </FONT> </BODY> </HTML> 添加货物到购物车页面 add.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %> <%@ page import="Car1" %> <HTML> <BODY ><Font size=2> <jsp:useBean id="car1" class="Car1" scope="session" > </jsp:useBean> <jsp:setProperty name= "car1" property="*" /> <% car1. 添加商品到购物车 (); %> <P> 您的购物车有如下商品: <% Hashtable list=car1. 列出购物车中的商品 (); Enumeration enum=list.elements(); while(enum.hasMoreElements()) { String goods=(String)enum.nextElement(); byte b[]=goods.getBytes("ISO-8859-1"); goods=new String(b); out.print("<BR>"+goods); } %> <% String str=response.encodeRedirectURL("car.jsp"); %> <BR><FORM action="<%=str%>" method=post name=form> <Input type=submit value=" 继续购物 "> </FORM> <% String str1=response.encodeRedirectURL("selectRemovedGoods.jsp"); %> <BR><FORM action="<%=str1%>" method=post name=form> <Input type=submit value=" 修改购物车中的货物 "> </FORM> </FONT> </BODY> </HTML> 选择删除货物的页面 selectRemovedGoods.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %> <%@ page import="Car1" %> <HTML> <BODY ><Font size=1> <jsp:useBean id="car1" class="Car1" scope="session" > </jsp:useBean> <P> 选择从购物车删除的商品: <% String str=response.encodeRedirectURL("removeWork.jsp"); %> <FORM action="<%=str%>" method=post name=form2> <Select name="deleteitem" size=1> <Option value="TV"> 电视机 <Option value="apple"> 苹果 <Option value="coke"> 可口可乐 <Option value="milk"> 牛奶 <Option value="tea"> 茶叶 </Select> <Input type=submit value=" 提交删除 "> </FORM> <P> 您的购物车有如下商品 : <% Hashtable list=car1. 列出购物车中的商品 (); Enumeration enum=list.elements(); while(enum.hasMoreElements()) { String goods=(String)enum.nextElement(); byte b[]=goods.getBytes("ISO-8859-1"); goods=new String(b); out.print("<BR>"+goods); } %> <% String str1=response.encodeRedirectURL("car.jsp"); %> <FORM action="<%=str1%>" method=post name=form> <Input type=submit value=" 继续购物 "> </FORM> </FONT> </BODY> </HTML> 删除货物页面 removeWork.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %> <%@ page import="Car1" %> <HTML> <BODY ><Font size=1> <jsp:useBean id="car1" class="Car1" scope="session" > </jsp:useBean> <% String name=request.getParameter("deleteitem"); if(name==null) {name=""; } byte c[]=name.getBytes("ISO-8859-1"); name=new String(c); car1. 删除货物 (name); out.print(" 您删除了货物: "+name); %> <P> 购物车中现在的货物: <% Hashtable list=car1. 列出购物车中的商品 (); Enumeration enum=list.elements(); while(enum.hasMoreElements()) { String goods=(String)enum.nextElement(); byte b[]=goods.getBytes("ISO-8859-1"); goods=new String(b); out.print("<BR>"+goods); } %> <% String str1=response.encodeRedirectURL("car.jsp"); %> <FORM action="<%=str1%>" method=post name=form> <Input type=submit value=" 继续购物 "> </FORM> <% String str=response.encodeRedirectURL("selectRemovedGoods.jsp"); %> <FORM action="<%=str%>" method=post name=form1> <Input type=submit value=" 修改购物车中的货物 "> </FORM> 10.3.5 日期 beans 使用 Java 的 Calendar 类制作 beans ,用来显示年、月、日、星期、小时、分钟、秒等时间。 JSPCalendar.java : import java.util.*; public class JSPCalendar { Calendar calendar = null; int year,dayOfMonth,dayOfYear,weekOfYear, weekOfMonth,dayOfWeek,hour,minute,second; String day,date,time; public JSPCalendar() {calendar = Calendar.getInstance(); Date time = new Date(); calendar.setTime(time); } // 获取年份: public int getYear() {return calendar.get(Calendar.YEAR); } // 获取月,进行格式处理: public String getMonth() { int m=1+calendar.get(Calendar.MONTH); String months[]={ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; if (m>12) return "0"; return months[m - 1]; } // 获取星期几 , 进行格式处理 : public String getDay() { int n =getDayOfWeek(); String days[]={" 日 "," 一 ", " 二 ", " 三 "," 四 ", " 五 ", " 六 "}; if(n>7) return " 星期? "; return days[n]; } // 获取:年、月、日 public String getDate() { return getYear()+ "/" + getMonth()+"/"+getDayOfMonth(); } public String getTime() // 获取:时:分:秒 {return getHour() + ":" + getMinute() + ":" + getSecond(); } public int getDayOfMonth() // 获取当前时间是一月中的哪一天 {return calendar.get(Calendar.DAY_OF_MONTH); } public int getDayOfYear() // 获取当前时间是一年中的哪一天 {return calendar.get(Calendar.DAY_OF_YEAR); } public int getWeekOfYear() // 获取当前时间是一年中的哪个星期 {return calendar.get(Calendar.WEEK_OF_YEAR); } public int getWeekOfMonth() // 获取当前时间是一年中的哪个星期 { return calendar.get(Calendar.WEEK_OF_MONTH); } public int getDayOfWeek() // 获取当前时间是一周中的哪一天 {return calendar.get(Calendar.DAY_OF_WEEK)-1; } public int getHour() // 获取小时 {return calendar.get(Calendar.HOUR_OF_DAY); } public int getMinute() // 获取分钟 {return calendar.get(Calendar.MINUTE); } public int getSecond() // 获取秒 {return calendar.get(Calendar.SECOND); } } 显示日历时间的页面 calendar.jsp : <%@ page contentType="text/html;charset=GB2312" %> <%@ page import="JSPCalendar" %> <HTML> <BODY> <jsp:useBean id="clock" class="JSPCalendar" scope="page" > </jsp:useBean> <td align="center"> <font color="red"><jsp:getProperty name="clock" property="year"/></font> 年 <font color="red"><jsp:getProperty name="clock" property="month"/></font> 月 <font color="red"><jsp:getProperty name="clock" property="dayOfMonth"/></font> 日 星期 <font color="blue"><jsp:getProperty name="clock" property="day"/></b></font> </td> <BR> 当前时间为 <jsp:getProperty name="clock" property="time"/> <BR> 今天是今年的第 <jsp:getProperty name="clock" property="dayOfYear"/> 天 <BR> 本周是今年的第 <jsp:getProperty name="clock" property="weekOfYear"/> 周 <BR> 本周是本月的第 <jsp:getProperty name="clock" property="weekOfMonth"/> 周 </BODY> </HTML> |