JSP
网页应用程序开发
网页应用程序开发
实验目的:掌握标记文件的创建和使用
1 使用标记体
编写单元格中重复显示文本的Tag文件,JSP页面通过使用标记体将要显示的文本传递给Tag文件
创建giveMess.jsp,引入标记库:
<%@ taglib tagdir="/WEB-INF/tags" prefix="ok"%>
在页面中添加表格和自定义标记:
<table border=2> <ok:handleMess> 南非世界杯 </ok:handleMess> <ok:handleMess> 冠军是西班牙 </ok:handleMess> <ok:handleMess> 亚军是荷兰 </ok:handleMess> </table>
在/WEB-INF/tags下创建handleMess.tag
<tr> <td> <jsp:doBody/> </td> <td> <jsp:doBody/> </td> <td> <jsp:doBody/> </td> </tr>
在浏览器中查看giveMess.jsp
2 使用属性(Attribute)
编写显示日历的Tag文件,JSP页面使用标记属性将年份和月份传递给Tag文件
创建giveYearMonth.jsp,引入标记库:
<%@ taglib tagdir="/WEB-INF/tags" prefix="rili" %>
在页面中添加日历的自定义标记:
<rili:ShowCalendar year="2012" month="12" />
在/WEB-INF/tags下创建ShowCalendar.tag
<%@ tag pageEncoding="GB2312" %> <%@ tag import="java.util.*" %> <%@ attribute name="year" required="true" %> <%@ attribute name="month" required="true" %> <% int y=1999, 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);//将日历翻到year年month月1日,注意0表示一月...11表示十二月 int 星期几=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==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<星期几;i++) day[i]="--"; for(int i=星期几, n=1; i<星期几+dayAmount; i++){ day[i]=String.valueOf(n) ; n++; } for(int i=星期几+dayAmount;i<42;i++) day[i]="--"; } catch(Exception exp){ out.print("年份或月份不合理"); } %> <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>
在浏览器中查看giveYearMonth.jsp
3 使用变量(Variable)
编写分解出字符串中单词的Tag文件,JSP页面显示Tag返回的所有单词
创建giveString.jsp
<%@ taglib tagdir="/WEB-INF/tags" prefix="words" %> <% String s="South Africa World Cup(Espana is champion)"; %> <words:GetWord str="<%=s %>"/> 字符串:<br><h3><%=s%><br></h3>中的全部单词: <% for(int i=0;i<wordList.size();i++){ out.print("<br>"+wordList.get(i)); } %>
在/WEB-INF/tags下创建getWord.tag
<%@ tag import="java.util.*" %> <%@ attribute name="str" required="true" %> <%@ variable name-given="wordList" variable-class="java.util.ArrayList" scope="AT_END" %> <% ArrayList<String> list=new ArrayList<String>(); //返回给JSP页面的list对象 String regex="[\\s\\d\\p{Punct}]+"; //空格、数字和符号(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)组成的正则表达式 String words[]=str.split(regex); for(int i=0;i<words.length;i++){ list.add(words[i]); } jspContext.setAttribute("wordList",list); ////将list对象返回给JSP页面 %>
在浏览器中查看giveString.jsp
博主 in 教程 09:53上午 9月 24, 2012
Tags: 实验