﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Exciting IN JAVA WAY-文章分类-组件 标签使用</title><link>http://www.blogjava.net/cgogg/category/23306.html</link><description>Take Easy</description><language>zh-cn</language><lastBuildDate>Wed, 20 Jun 2007 15:00:12 GMT</lastBuildDate><pubDate>Wed, 20 Jun 2007 15:00:12 GMT</pubDate><ttl>60</ttl><item><title>下拉日期控件</title><link>http://www.blogjava.net/cgogg/articles/125332.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125332.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125332.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125332.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125332.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/singlepine/archive/2005/11/06/270130.html">下拉日期控件</a>
</div>
<div class="postText">
<img src="http://www.cnblogs.com/images/cnblogs_com/singlepine/Calendar.JPG" align="bottom" height="205" hspace="5" width="291"><br>1.测试代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;HTML&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;WebForm1&lt;/title&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;LINK&nbsp;HREF="Calendar.css"&nbsp;TYPE="text/css"&nbsp;REL="stylesheet"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;language="javascript"&nbsp;src="Calendar.js"&gt;&lt;/script&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;id="Form1"&nbsp;method="post"&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;cellSpacing="1"&nbsp;cellPadding="1"&nbsp;width="936"&nbsp;border="0"&nbsp;height="29"&nbsp;style="LEFT:&nbsp;10px;&nbsp;POSITION:&nbsp;absolute;&nbsp;TOP:&nbsp;15px"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--日期实例化--begin--&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:TextBox&nbsp;id="txtDATE"&nbsp;runat="server"&nbsp;onchange='javascript:gChangeDate(this,0);'&nbsp;onblur='javascript:gChangeDate(this,0);'&gt;&lt;/asp:TextBox&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;INPUT&nbsp;TYPE="button"&nbsp;value='<img src="http://www.cnblogs.com/Images/dot.gif">'&nbsp;NAME='bntDATE'&nbsp;OnClick='showCalendar(txtDATE,0)'&nbsp;class="button"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--end--&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;select&nbsp;size="1"&nbsp;name="REC_SOURCE_SCUR"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;OPTION&nbsp;VALUE=""&nbsp;selected&gt;&lt;/OPTION&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;OPTION&nbsp;VALUE="1"&gt;1&lt;/OPTION&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;OPTION&nbsp;VALUE="2"&gt;2&lt;/OPTION&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;&amp;nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Button&nbsp;id="Button1"&nbsp;runat="server"&nbsp;Text="Button"&gt;&lt;/asp:Button&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/HTML&gt;</div>
2.代码下载<a href="http://singlepine.cnblogs.com/Files/singlepine/Calendardemo.rar" target="">/Files/singlepine/Calendardemo.rar</a>
</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:34 <a href="http://www.blogjava.net/cgogg/articles/125332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多级下拉菜单(动态)</title><link>http://www.blogjava.net/cgogg/articles/125330.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:32:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125330.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125330.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125330.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125330.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125330.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/singlepine/archive/2005/10/22/259955.html">多级下拉菜单(动态)</a>
</div>
<div class="postText">
<p><img src="http://www.cnblogs.com/images/cnblogs_com/singlepine/HomePage.JPG" align="bottom" height="286" hspace="5" width="357"><br>-------------------------------------<br>源代码下载<a href="http://singlepine.cnblogs.com/Files/singlepine/topmenu.rar">/Files/singlepine/topmenu.rar</a></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">public&nbsp;class&nbsp;TopMenu&nbsp;:&nbsp;System.Web.UI.Page<br><img id="Codehighlighter1_42_3073_Open_Image" onclick="this.style.display='none'; codehighlighter1_42_3073_open_text.style.display="'none';" codehighlighter1_42_3073_closed_image.style.display="'inline';" codehighlighter1_42_3073_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_42_3073_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_42_3073_closed_text.style.display="'none';" codehighlighter1_42_3073_open_image.style.display="'inline';" codehighlighter1_42_3073_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;DataRow[]&nbsp;father;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;DataRow[]&nbsp;first;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;DataRow[]&nbsp;second;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id="Codehighlighter1_204_227_Open_Image" onclick="this.style.display='none'; codehighlighter1_204_227_open_text.style.display="'none';" codehighlighter1_204_227_closed_image.style.display="'inline';" codehighlighter1_204_227_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_204_227_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_204_227_closed_text.style.display="'none';" codehighlighter1_204_227_open_image.style.display="'inline';" codehighlighter1_204_227_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;string&nbsp;ConnectionString=System.Configuration&nbsp;.ConfigurationSettings&nbsp;.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<br><img id="Codehighlighter1_359_632_Closed_Image" onclick="this.style.display='none'; codehighlighter1_359_632_closed_text.style.display="'none';" codehighlighter1_359_632_open_image.style.display="'inline';" codehighlighter1_359_632_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_359_632_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_359_632_open_text.style.display="'none';" codehighlighter1_359_632_closed_image.style.display="'inline';" codehighlighter1_359_632_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetDataSet#region&nbsp;GetDataSet<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;DataSet&nbsp;GetDataSet(string&nbsp;sql)<br><img id="Codehighlighter1_439_613_Open_Image" onclick="this.style.display='none'; codehighlighter1_439_613_open_text.style.display="'none';" codehighlighter1_439_613_closed_image.style.display="'inline';" codehighlighter1_439_613_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_439_613_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_439_613_closed_text.style.display="'none';" codehighlighter1_439_613_open_image.style.display="'inline';" codehighlighter1_439_613_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlDataAdapter&nbsp;&nbsp;&nbsp;&nbsp;sda&nbsp;=new&nbsp;SqlDataAdapter(sql,ConnectionString);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds=new&nbsp;DataSet();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sda.Fill(ds);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img id="Codehighlighter1_642_1263_Closed_Image" onclick="this.style.display='none'; codehighlighter1_642_1263_closed_text.style.display="'none';" codehighlighter1_642_1263_open_image.style.display="'inline';" codehighlighter1_642_1263_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_642_1263_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_642_1263_open_text.style.display="'none';" codehighlighter1_642_1263_closed_image.style.display="'inline';" codehighlighter1_642_1263_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web&nbsp;Form&nbsp;Designer&nbsp;generated&nbsp;code#region&nbsp;Web&nbsp;Form&nbsp;Designer&nbsp;generated&nbsp;code<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;override&nbsp;protected&nbsp;void&nbsp;OnInit(EventArgs&nbsp;e)<br><img id="Codehighlighter1_743_926_Open_Image" onclick="this.style.display='none'; codehighlighter1_743_926_open_text.style.display="'none';" codehighlighter1_743_926_closed_image.style.display="'inline';" codehighlighter1_743_926_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_743_926_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_743_926_closed_text.style.display="'none';" codehighlighter1_743_926_open_image.style.display="'inline';" codehighlighter1_743_926_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CODEGEN:&nbsp;This&nbsp;call&nbsp;is&nbsp;required&nbsp;by&nbsp;the&nbsp;ASP.NET&nbsp;Web&nbsp;Form&nbsp;Designer.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.OnInit(e);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img id="Codehighlighter1_945_948_Open_Image" onclick="this.style.display='none'; codehighlighter1_945_948_open_text.style.display="'none';" codehighlighter1_945_948_closed_image.style.display="'inline';" codehighlighter1_945_948_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_945_948_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_945_948_closed_text.style.display="'none';" codehighlighter1_945_948_open_image.style.display="'inline';" codehighlighter1_945_948_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**//**//**////&nbsp;&lt;summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;Required&nbsp;method&nbsp;for&nbsp;Designer&nbsp;support&nbsp;-&nbsp;do&nbsp;not&nbsp;modify<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;the&nbsp;contents&nbsp;of&nbsp;this&nbsp;method&nbsp;with&nbsp;the&nbsp;code&nbsp;editor.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;InitializeComponent()<br><img id="Codehighlighter1_1164_1244_Open_Image" onclick="this.style.display='none'; codehighlighter1_1164_1244_open_text.style.display="'none';" codehighlighter1_1164_1244_closed_image.style.display="'inline';" codehighlighter1_1164_1244_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1164_1244_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1164_1244_closed_text.style.display="'none';" codehighlighter1_1164_1244_open_image.style.display="'inline';" codehighlighter1_1164_1244_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.Load&nbsp;+=&nbsp;new&nbsp;System.EventHandler(this.Page_Load);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img id="Codehighlighter1_1266_3071_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1266_3071_closed_text.style.display="'none';" codehighlighter1_1266_3071_open_image.style.display="'inline';" codehighlighter1_1266_3071_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_1266_3071_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1266_3071_open_text.style.display="'none';" codehighlighter1_1266_3071_closed_image.style.display="'inline';" codehighlighter1_1266_3071_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;LoadTopMenu#region&nbsp;LoadTopMenu<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;string&nbsp;LoadTopMenu()<br><img id="Codehighlighter1_1319_3059_Open_Image" onclick="this.style.display='none'; codehighlighter1_1319_3059_open_text.style.display="'none';" codehighlighter1_1319_3059_closed_image.style.display="'inline';" codehighlighter1_1319_3059_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1319_3059_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1319_3059_closed_text.style.display="'none';" codehighlighter1_1319_3059_open_image.style.display="'inline';" codehighlighter1_1319_3059_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IsBoot设置菜单级别,0一级,1二级,2三级,依此类推.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;sqlFather="select&nbsp;*&nbsp;from&nbsp;topmenu&nbsp;order&nbsp;by&nbsp;IsBoot";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;dsFather=GetDataSet(sqlFather);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father=dsFather.Tables[0].Select("IsBoot=0","IsBoot");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;menu="";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;one=0;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;two=1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;three=1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(DataRow&nbsp;drfather&nbsp;in&nbsp;father)<br><img id="Codehighlighter1_1626_3041_Open_Image" onclick="this.style.display='none'; codehighlighter1_1626_3041_open_text.style.display="'none';" codehighlighter1_1626_3041_closed_image.style.display="'inline';" codehighlighter1_1626_3041_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1626_3041_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1626_3041_closed_text.style.display="'none';" codehighlighter1_1626_3041_open_image.style.display="'inline';" codehighlighter1_1626_3041_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="mpmenu"+one+"=new&nbsp;mMenu("+"'"+drfather["text"]+"'"+",'/','self','','','','');";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first=dsFather.Tables[0].Select("ParentID='"+Convert.ToInt32(drfather["ID"])+"'&nbsp;and&nbsp;IsBoot=1","IsBoot");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(DataRow&nbsp;drfirst&nbsp;in&nbsp;first)<br><img id="Codehighlighter1_1882_3027_Open_Image" onclick="this.style.display='none'; codehighlighter1_1882_3027_open_text.style.display="'none';" codehighlighter1_1882_3027_closed_image.style.display="'inline';" codehighlighter1_1882_3027_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1882_3027_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1882_3027_closed_text.style.display="'none';" codehighlighter1_1882_3027_open_image.style.display="'inline';" codehighlighter1_1882_3027_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second=dsFather.Tables[0].Select("ParentID='"+Convert.ToInt32(drfirst["ID"])+"'&nbsp;and&nbsp;IsBoot=2","IsBoot");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(second.Length==0)<br><img id="Codehighlighter1_2022_2355_Open_Image" onclick="this.style.display='none'; codehighlighter1_2022_2355_open_text.style.display="'none';" codehighlighter1_2022_2355_closed_image.style.display="'inline';" codehighlighter1_2022_2355_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2022_2355_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2022_2355_closed_text.style.display="'none';" codehighlighter1_2022_2355_open_image.style.display="'inline';" codehighlighter1_2022_2355_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="mpmenu"+one+".addItem(new&nbsp;mMenuItem("+"'"+drfirst["text"]+"'";//description<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+=","+"'"+drfirst["url"]+"'"+",";//url<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="'"+drfirst["target"]+"'"+",";//target<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+=""+drfirst["visible"]+",";//是否可见,false可见,true不可见<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="'"+drfirst["status"]+"'"+",";//状态条<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="null,'','','',''));";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(DataRow&nbsp;drsecond&nbsp;in&nbsp;second)<br><img id="Codehighlighter1_2401_3011_Open_Image" onclick="this.style.display='none'; codehighlighter1_2401_3011_open_text.style.display="'none';" codehighlighter1_2401_3011_closed_image.style.display="'inline';" codehighlighter1_2401_3011_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2401_3011_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2401_3011_closed_text.style.display="'none';" codehighlighter1_2401_3011_open_image.style.display="'inline';" codehighlighter1_2401_3011_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="msub"+two+"=new&nbsp;mMenuItem("+"'"+drfirst["text"]+"','',"+"'"+drfirst["target"]+"'";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+=","+drfirst["visible"]+",";//是否可见,false可见,true不可见<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="'','1','','','','');";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="msub"+three+".addsubItem(new&nbsp;mMenuItem("+"'"+drsecond["text"]+"'";//description<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+=","+"'"+drsecond["url"]+"'"+",";//url<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="'"+drsecond["target"]+"'"+",";//target<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+=""+drsecond["visible"]+",";//是否可见,false可见,true不可见<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="'"+drsecond["status"]+"'"+",";//状态条<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="null,'','','',''));";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menu+="mpmenu"+one+".addItem(msub"+two+");";//addItem<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;three++;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;two++;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;one++;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;menu;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</div>
<p>3.数据库脚本<br>&nbsp;</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">--建表<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">if&nbsp;exists&nbsp;(select&nbsp;*&nbsp;from&nbsp;dbo.sysobjects&nbsp;where&nbsp;id&nbsp;=&nbsp;object_id(N'[dbo].[topmenu]')&nbsp;and&nbsp;OBJECTPROPERTY(id,&nbsp;N'IsUserTable')&nbsp;=&nbsp;1)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">drop&nbsp;table&nbsp;[dbo].[topmenu]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">GO<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">CREATE&nbsp;TABLE&nbsp;[dbo].[topmenu]&nbsp;(<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[ID]&nbsp;[int]&nbsp;NOT&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[parentId]&nbsp;[int]&nbsp;NOT&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[text]&nbsp;[nvarchar]&nbsp;(255)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[url]&nbsp;[nvarchar]&nbsp;(255)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[target]&nbsp;[nvarchar]&nbsp;(50)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[IsBoot]&nbsp;[int]&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[visible]&nbsp;[nvarchar]&nbsp;(50)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL&nbsp;,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[status]&nbsp;[nvarchar]&nbsp;(50)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">)&nbsp;ON&nbsp;[PRIMARY]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">GO<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">--插入测试数据<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(1,0,'深圳','http://singlepine.cnblogs.com/articles/259955.html','self',0,'false','深圳')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(2,1,'南山','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','南山')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(3,1,'福田','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','福田')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(4,2,'科技园','http://singlepine.cnblogs.com/articles/259955.html','self',2,'false','科技园')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(5,3,'塞格','http://singlepine.cnblogs.com/articles/259955.html','self',2,'false','塞格')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(6,0,'广州','http://singlepine.cnblogs.com/articles/259955.html','self',0,'false','广州')<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">insert&nbsp;into&nbsp;topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible]&nbsp;,[status])<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">values(7,6,'广州火车站','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','广州火车站')</div>
</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:32 <a href="http://www.blogjava.net/cgogg/articles/125330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Display Tag使用小记</title><link>http://www.blogjava.net/cgogg/articles/124991.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Mon, 18 Jun 2007 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/124991.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/124991.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/124991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/124991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/124991.html</trackback:ping><description><![CDATA[了一段时间的Display Tag，觉得非常好用，可在论坛上发现好像使用这个东东的人挺少的，那偶也来写篇文章。<br>&nbsp;&nbsp;&nbsp; Display Tag Lib是一个标签库，用来处理jsp网页上的Table，功能非常强，可以对的Table进行分页、数据导出、分组、对列排序等等，反正我在做项目时需要的功能它都给我提供了，而且使用起来非常的方便。能够大大减少代码量。<br>&nbsp;&nbsp;&nbsp; 介个是Display Tag的官方网站<a  href="http://displaytag.sourceforge.net/">http://displaytag.sourceforge.net</a>。<br><br>&nbsp;&nbsp;&nbsp; 首先当然是要下载它的jar包了，<a  href="http://displaytag.sourceforge.net/downloads.html">这里</a>可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包：apache的commons-lang和standard包，更多的辅助包可以在这里<a  href="http://displaytag.sourceforge.net/dependencies.html">下载</a>。<br><br>&nbsp;&nbsp;&nbsp; 在web.xml下添加一个filter<br>&nbsp;&nbsp;&nbsp; &lt;filter&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;exportFilter&lt;/filter-name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.displaytag.filter.ResponseOverrideFilter&lt;/filter-class&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/filter&gt;<br><br>&nbsp;&nbsp;&nbsp; 在jsp页面做一个引用：<br>&lt;%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %&gt;<br><br>&nbsp;&nbsp;&nbsp; 首先我们定义一个list<br>&lt;% <br>&nbsp;List test = new ArrayList( 6 );<br>&nbsp;test.add( "Test String 1" );<br>&nbsp;test.add( "Test String 2" );<br>&nbsp;test.add( "Test String 3" );<br>&nbsp;test.add( "Test String 4" );<br>&nbsp;test.add( "Test String 5" );<br>&nbsp;test.add( "Test String 6" );<br>&nbsp;request.setAttribute( "test", test ); <br>%&gt;<br><br>&nbsp;&nbsp;&nbsp; 当我们想在jsp页面上显示这个list时，我们只需要写一句话<br>&nbsp;&nbsp;&nbsp; &lt;display:table name="test" /&gt;<br>&nbsp;&nbsp;&nbsp; display tag会自动生成一个table<br><br>&nbsp;&nbsp;&nbsp; 如果list是从控制层抛出来的，name可使用EL表达式表示<br>&nbsp;&nbsp;&nbsp; &lt;display:table name="${test}" /&gt;<br><br>&nbsp;&nbsp;&nbsp; 这是最简单的display tag的使用，我们可以给它加上样式等，也可以定义显示的列，下面的table显示复杂一些<br>&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br>&nbsp; &lt;display:column property="id" title="ID" class="idcol"/&gt;<br>&nbsp; &lt;display:column property="name" /&gt;<br>&nbsp; &lt;display:column property="email" /&gt;<br>&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br>&lt;/display:table&gt;<br><br>&nbsp;&nbsp;&nbsp; 如果想要给它加个链接也很简单,下面的代码给name加了连接，并附带id参数，email也自动连接到mailto:XXX<br>&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br>&nbsp; &lt;display:column property="id" title="ID" class="idcol"/&gt;<br>&nbsp; &lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/&gt;<br>&nbsp; &lt;display:column property="email" autolink="true"/&gt;<br>&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br>&lt;/display:table&gt;
<p>下面介绍几个Display最常用的功能，更多功能请参考<a  href="http://displaytag.homeip.net/displaytag-examples-1.1/">http://displaytag.homeip.net/displaytag-examples-1.1/</a>。<br>1. 分页<br>&nbsp;&nbsp;&nbsp; 如果想对代码分页，只需在display:table标签中添加一项pagesize="每页显示行数"，如<br>&lt;display:table name="test" pagesize="10"/&gt;</p>
<p>2. 对列排序<br>&nbsp;&nbsp;&nbsp;
display tag可对列进行排序，就是点击列名，对该列的数据进行排序。你只需对想要排序的列添加 sort="true"
就OK，如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数"，可默认对指定的列排序。<br>&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1"&gt;<br>&nbsp; &lt;display:column property="id" title="ID" class="idcol" sort="true"/&gt;<br>&nbsp; &lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/&gt;<br>&nbsp; &lt;display:column property="email" autolink="true" sort="true"/&gt;<br>&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br>&lt;/display:table&gt;<br>&nbsp;&nbsp; 如果table有分页，Display Tag默认只对当前页进行排序，如果想对整个list排序，可以在display:table之间添加一段代码：<br>&lt;display:setProperty name="sort.amount" value="list"/&gt;<br><br>3. 导出数据<br>&nbsp;&nbsp;&nbsp; 在display:table中添加export="true"，看看会出现什么！Display Tag默认会提供三种数据导出方式：CSV、Excel、XML 。<br>&nbsp;&nbsp;&nbsp; 另外Display Tag还可以导出为PDF格式，在<a  href="http://prdownloads.sourceforge.net/itext/">http://prdownloads.sourceforge.net/itext/</a>下载一个辅助包iText.jar，copy到lib目录下，然后在display:table之间添加一段代码：<br>&lt;display:setProperty name="export.pdf" value="true"/&gt;，大功告成。</p>
<p>4. Display Tag的属性设置<br>&nbsp;&nbsp;&nbsp; 前面所说的display:setProperty&nbsp;是一种改变Display Tag属性的方法，但是在每个jsp中都要写太麻烦了。<br>&nbsp;&nbsp;&nbsp; Display Tag中设置了很多默认的属性，它有一个专门的属性文件，是在它的jar包中的displaytag/properties/TableTag.properties<br>&nbsp;&nbsp;&nbsp; 想要改变它的默认属性，我们可以在WEB-INF\classes下新建一个文件displaytag.properties，仿照TableTag.properties中属性的格式设置需要修改的属性。<br>&nbsp;&nbsp;&nbsp;
TableTag.properties中的#
messages中设置的是显示在页面上的提示信息。默认是英文的，我们可以把它改为中文的。不过这里只能使用unicode，就是说中文字符必须转换为
unicode码，这个可以使用jdk自带的native2ascii.exe进行转换。</p>
<p>5. 其它功能<br>&nbsp;&nbsp;&nbsp;
DisplayTag还有一些很实用的小功能，这里提两个。一个是对数据的Format，这是1.1版本添加的新功能，可以使用标签的方式格式化时间、数
字、字符串。比如日期，在需要格式化的column标签中添加format="{0,date,yyyy-MM-dd}"，第一个参数为格式化的数据序
号，第二个参数是数据类型，数字为number，第三个参数为数据格式。<br>&nbsp;&nbsp;&nbsp;
另外一个功能是对table数据的合计功能。在table标签中添加
decorator="org.displaytag.decorator.TotalTableDecorator"，然后在想要进行合计的数据列的
column标签中添加 total="true"，该列就可以被计算总数了。但这个功能有个缺点，不能用在有分页的时候，它只能合计第一页的数据。<br><br><strong>DisplayTag的不足<br></strong>&nbsp;&nbsp;&nbsp;
初次使用DisplayTag的人可能会觉得惊喜，但是用久了会发现很多问题，最大的问题是对中文的支持不好，比如如果查询条件中有中文，就无法翻页，无
法对中文排序，将中文导出为指定文件时出现乱码等等。这些问题有时候会让人很郁闷，有时候逼得你要去修改它的源代码。下面是对以上几个问题的解决方法：<br>&nbsp;&nbsp;&nbsp;
1.
对于中文无法翻页、排序，最简单的办法是修改Tomcat下的server.xml文件。找到HTTP的Connector标签，在里面添加一项
URIEncoding="..."，引号里面的内容取决于你的页面编码，比如可以是GBK，UTF8等。这样上面两个问题就可以解决了。<br>&nbsp;&nbsp;&nbsp;
2.
导出为文件：其实这个功能除了中文支持外还有很多其它问题，比如它会将Html标签一起导出、只导出显示的内容，但如果对table进行了
decorator，decorator后的内容无法导出。如果想要将中文正确导出，需要修改DisplayTag源代码。<br>&nbsp;&nbsp;&nbsp;
下载相同版本的源代码，在org.displaytag.export.ExcelView.java文件中找到getMimeType()方法，将此方
法修改为 return
"application/vnd.ms-excel;charset=GB2312";，修改后导出数据的速度会慢很多，不过将就吧。<br>&nbsp;&nbsp;&nbsp; 3. 新版的DisplayTag1.1添加了对一次取部分数据的支持，相关的标签包括partialList和size，需要设置partialList="true"和size的大小。具体怎么用偶还没研究。</p><img src ="http://www.blogjava.net/cgogg/aggbug/124991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-18 18:14 <a href="http://www.blogjava.net/cgogg/articles/124991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>标签库Taglib 的内部机制</title><link>http://www.blogjava.net/cgogg/articles/123811.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123811.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123811.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123811.html</trackback:ping><description><![CDATA[<p>标签库Taglib<br><br>标签被定义和分布在一个称为标签库的结构中，一个标签库是由元信息和类组成的集合：<br>1.标签处理器：实现定制标签功能的Java类。<br>2.标签附加信息（TEI）：向JSP容器提供边辑以确认标签属性和创建变量的类。<br>3.标签库描述器（TLD）：描述单个标签和整个标签库属性的XML文档。<br><br>标
签处理器和标签附加信息需要定位在JSP容器类载入器可以找到的地方。标签库描述器可在URL指定的符意位置。JSP1.1规范要求JSP容器接受一个打
包成因定结构的JAR文件的标签库。TLD必须是/META-INF目录中名为taglib.tld的文件，JAR文件则复制到/WEB-INF/lib
目录下。<br><br>一、标签实现<br><br>1.开发步骤<br>a.定义标签的名字、属性、声明的变量和标签体的内容。<br>b.编写标签库描述器TLD。<br>c.编写标签处理器。<br>d.在JSP页面中使用标签。<br><br>2.JSP页面在JSP容器中的转换步骤：<br>JSP页面存在三种形式：jsp文件、java文件和class文件。<br>a.指令元素&lt;%@page%&gt;、&lt;%@include%&gt;和&lt;%@taglib%&gt;向JSP容器提供转换时信息。<br>b.HTML行在_jspService()方法中依顺序转换到out.print()语名中。<br>c.脚本元素的声明被原封不动地复制到_jspService()方法外的源码中。<br>d.脚本元素的表达式在_jspService()方法中依顺序转换到out.print()语名中。<br>e.脚本元素的Scriptlet被原封不动地复制到_jspService()方法中。<br>f.行为元素被转换为执行其功能的运行时逻辑代码。<br>g.定制标签被扩展到调用其相应标签处理器中方法的Java语句中。<br><br>3.标签在JSP容器中的转换步骤：<br>a.JSP容器使用taglib指令元素定位标签库描述器，将页面中用到的定制标签和TLD相匹配。<br>b.读取标签库描述器的标签列表和每一标签相关的类名字。<br>c.在页面中遇到一个标签时，查找与具有指定名字的标签前缀相关的一个标签库。<br>d.容器使用在TLD中找到的标签结构信息生成一系列完成标签功能的Java语句。<br><br><br>二、标签库描述器（TLD）<br><br>标签库描述器是一个描述整个标签库标记信息和库中每个标签处理器及其属性的XML文档。<br><br>标签库描述器的DTD由一个简单的&lt;taglib&gt;元素组成，此元素包含下列一些子元素。<br>整个标签库标记信息<br>tlibversion&nbsp;&nbsp;&nbsp;&nbsp;标签库版本号。是一个点式十进制数，最多为4组小数点分隔的数字组成。<br>jspversion&nbsp;&nbsp;&nbsp;&nbsp;标签库所需的JSP规范最低版本。例如JSP1.1<br>shortname&nbsp;&nbsp;&nbsp;&nbsp;标签库的缩写名。JSP可以使用该名字作为库中标签的缺省前缀。<br>uri&nbsp;&nbsp;&nbsp;&nbsp;标签库唯一URI的元素。典型URL位置来自可下载taglib的位置。<br>info&nbsp;&nbsp;&nbsp;&nbsp;标签库描述信息。<br>每个标签处理器及其属性<br>tag&nbsp;&nbsp;&nbsp;&nbsp;在TLD中加入标签，描述组成库的每个标签。<br>name&nbsp;&nbsp;&nbsp;&nbsp;与标签库的名字前缀一起使用的标签的名字，&nbsp;是JSP容器唯一的标签标识。<br>tagclass&nbsp;&nbsp;&nbsp;&nbsp;实现标签的标签处理器类的全名。<br>teiclass&nbsp;&nbsp;&nbsp;&nbsp;标签附加信息（TEI）类的全名。TEI类给出关于标签处理器创建变量及对标签司性执行的任意有效性验证的信息。<br>bodycontent&nbsp;&nbsp;&nbsp;&nbsp;描述标签处理器如何使用标签体的内容。有三种取值：<br>&nbsp;&nbsp;&nbsp;&nbsp;empty：表示标签体必须为空；<br>&nbsp;&nbsp;&nbsp;&nbsp;JSP:表示脚本元素和模板及其它标签一样被评估。<br>&nbsp;&nbsp;&nbsp;&nbsp;tagdependent：体内容被原封不动写入BodyContent，其它脚本元素以源码形式出现，而不被JSP容器解释。<br>info&nbsp;&nbsp;&nbsp;&nbsp;标签的人工可读描述性信息。<br>attribute&nbsp;&nbsp;&nbsp;&nbsp;使用标签时被编码的属性信息。用于定义标签的属性。<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;属性名&lt;/name&gt;：属性的名字。<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;request&gt;true|false&lt;/request&gt;：属性在标签用到的位置是否要被编码。<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtxexpvalue&gt;true|false&lt;/rtxexpvalue&gt;：属性值能否用表达式指定。<br><br>三、标签处理器<br><br>标签处理器是通过实现JSP容器调用的一系列预定义方法执行定制标签行为的一个Java类。<br>标签处理器实现了标签的行为，标签处理器是Java类。<br><br>1.标签处理器的工作方式<br>a.导入javax.servlet.jsp和javax.servlet.jsp.tagext包。<br>b.实现javax.servlet.jsp.tagext包中的Tag接口或BodyTag接口。BodyTag是Tag的子接口。<br>c.继承TagSupport类或BodyTagSuppoert类。它们是上述接口的缺省实现。<br>d.重载public&nbsp;int&nbsp;doStartTag()throws&nbsp;JspException方法。<br><br>2.标签处理器的接口与实现<br>javax.servlet.jsp.tagext.Tag是实现标签的最基本的接口。<br>javax.servlet.jsp.tagext.TagSupport是实现Tag接口的具体类。<br>通常情况下继承tagSupport类而不直接实现Tag接口通常是有益的。除了对所有必需方法提供了缺省实现外、还保存了pageContext对象及对嵌套标签的支持。<br>Tag接口包含4个常量，表示doStartTag()和doEndTag()方法可能的返回码。<br>EVAL_BODY_INCLUDE&nbsp;&nbsp;&nbsp;&nbsp;当doStartTag()返回时，指明servlet应对标签体进行评估。<br>SKIP_BODY&nbsp;&nbsp;&nbsp;&nbsp;当doStartTag()返回时，指明servlet应忽视标签体。<br>EVAL_PAGE&nbsp;&nbsp;&nbsp;&nbsp;当doEndTag()返回时，指明页面其余部分应被评估。<br>SKIP_PAGE&nbsp;&nbsp;&nbsp;&nbsp;当doEndTag()返回时，指明页面其余部分就被跳过。<br>Tag接口的方法<br>public&nbsp;void&nbsp;setPageContext&nbsp;
(PageContext&nbsp;ctx)&nbsp;&nbsp;&nbsp;&nbsp;生成的servlet在请求处理器执行其它任务前首先调用此方法，实现类应保存上下文对象以便它可以在标签生
命期中使用。从页面上下文中标签处理器可以访问所有JSP隐含对象。<br>public&nbsp;void&nbsp;setParent(Tag&nbsp;p)&nbsp;&nbsp;&nbsp;&nbsp;使用一个标答可以找到操作栈中它上面的标签。在setPageContext后立即调用。<br>public&nbsp;Tag&nbsp;getParent()&nbsp;&nbsp;&nbsp;&nbsp;返回父标签。<br>public&nbsp;int&nbsp;doStartTag()&nbsp;throws&nbsp;Jsp&nbsp;&nbsp;&nbsp;&nbsp;在设置了页面上下文、父标签和开始标记中编码的属性后调用。返回码表明JSP实现servlet是否就评估标签体。<br>public&nbsp;int&nbsp;doEndTag()throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;当遇到结否标记时调用。返回码表明JSP是否就继纽页面的其余部份。<br>public&nbsp;void&nbsp;release()&nbsp;&nbsp;&nbsp;&nbsp;确保在页面退出前被调用。释放资源并重置标签处理器状态。<br>TagSupport类的方法<br>public&nbsp;static&nbsp;Tag&nbsp;finAncestorWithClass(Tag&nbsp;thisTag,&nbsp;Class&nbsp;cls)&nbsp;&nbsp;&nbsp;&nbsp;为所需的父标签处理器查找运行时标签栈。一个标签处理器可以提供其范围内子标签调用的方法。<br>public&nbsp;void&nbsp;setId(String&nbsp;id)&nbsp;&nbsp;&nbsp;&nbsp;保存和检索在id属性中指定的名字。<br>public&nbsp;void&nbsp;setValue(String&nbsp;name,&nbsp;Object&nbsp;o)&nbsp;&nbsp;&nbsp;&nbsp;在本地哈希表中设置指定名字的值。<br>public&nbsp;Object&nbsp;getValue&nbsp;(String&nbsp;name)&nbsp;&nbsp;&nbsp;&nbsp;从本地哈希表中获取指定名称的值。<br>public&nbsp;void&nbsp;removeValue&nbsp;(String&nbsp;name)&nbsp;&nbsp;&nbsp;&nbsp;从本地哈希表中删除指定名称的值。<br>public&nbsp;Enumeration&nbsp;getValues()&nbsp;&nbsp;&nbsp;&nbsp;返回哈希表中关键字的一个枚举。<br><br>3.标签处理器的生命期<br>a.生成servlet需要创建标签处理器类的一个实例。实现方式通常是调用JSP容器的工厂类的一个方法，工厂类包含一个标签处理器实例池以使其可重用不再处于激活状态的对象。<br>b.初始化标签处理器，使servlet获知其存在性。servlet通过调用标签处理器的两个方法实现此过程：setPageContext(PageContext&nbsp;ctx)和setParent(Tag&nbsp;parent)。<br>c.如果标签具有属性，属性的取值通过处理器提供setter方法传入到对象。属性setter方法是一个标签支持属性所需的唯一方法。<br>d.
页面的上下文和父标签已被调置，并已具备属性。此时调用标签处理器的doStartTag()方法，该方法可以读取这些变量并执行实现标答功能所需的计算
和操作。doStartTag()方法必须返回一个整型数。返回EVAL_BODY_INCLUDE则正常处理标签体，返回SKIP_BODY则从初始
JSP页面中直到此标签结束标记处的内容均被忽略。<br>e.标签体被评估或忽视后调用标签处理器的doEndTag()方法，返回EVAL_PAGE则页面的其余部分被评估，返回SKIP_PAGE则servlet代码立即从_jspService()中返回。<br><br>4.体标签处理器的接口与实现<br>javax.servlet.jsp.tagext.BodyTag是Tag的子接口。<br>javax.servlet.jsp.tagext.BodyTagSupport是实现BodyTag类。<br>BodyContent是javax.servlet.jsp.JspWriter的子类，但与其父类有所区别。<br>BodyContent
对象的内容不自动写了入servlet的输出流，而是积累在一字符串缓存中。当标签体完成后其对象仍可在doEndTag()方法中可以应用，由
getString()或getReader()方法操作。并在必要时修改及写入恢复的JspWriter输出流。<br>BodyContent类的方法<br>public&nbsp;void&nbsp;flush()throws&nbsp;IOException&nbsp;&nbsp;&nbsp;&nbsp;复写JspWrite.flush()方法以便它总是产生溢出。刷新写入已失效，因为它没有连接到将被写入的实际输出流中。<br>public&nbsp;void&nbsp;clearBody()&nbsp;&nbsp;&nbsp;&nbsp;重置BodyContent缓存为空。<br>public&nbsp;Reader&nbsp;getReader()&nbsp;&nbsp;&nbsp;&nbsp;返回Reader读取体内容。<br>public&nbsp;String&nbsp;getString()&nbsp;&nbsp;&nbsp;&nbsp;返回包含体内容的一个字符串。<br>public&nbsp;void&nbsp;writeOut(Write&nbsp;w)&nbsp;&nbsp;&nbsp;&nbsp;将体内容写入指定输出。<br>public&nbsp;JspWrite&nbsp;getEnclosing&nbsp;Write()&nbsp;&nbsp;&nbsp;&nbsp;返回栈中下一个更高的写入者对象（可能是另一个BodyContent对象）。<br>BodyTag接口定义了一个新的整型常量<br>EVAL_BODY_TAG&nbsp;&nbsp;&nbsp;&nbsp;当doStartTag()返回时，使得新的BodyContent对象被创建并与此标签处理器相关联。当doAfterBody()返回时，使得JSP&nbsp;servlet在修改完此标签控制的任意变量后再次评估体。<br>BodyTag接口的方法<br>public&nbsp;void&nbsp;setBodyContern&nbsp;(BodyContent&nbsp;out)&nbsp;&nbsp;&nbsp;&nbsp;在当前JspWriter已被写入，一个新的BodyContent在被创建后由Jsp&nbsp;servlet调用，它发生在doStartTag()之后。<br>public&nbsp;void&nbsp;doInitBody()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;setBodyContent()之后，体被评估前调用的生命期方法。如果多次评估体，此方法只调用一次。<br>public&nbsp;init&nbsp;doAfterBody
()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;体被评估后，BodyContent写入者仍处于激活状态时调用的生命期方法。此方法必须返回
EVAL_BODY_TAG或SKIP_BODY，若返回EVAL_BODY_TAG时体再次被评估。<br>BodyTagSupport类的方法<br>public&nbsp;int&nbsp;doStartTag()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;复写TagSupport中的doStartTag()方法。<br>public&nbsp;int&nbsp;doEndTag()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;调用TagSupport中的doEndTag()方法，返回结果。<br>public&nbsp;void&nbsp;setBodyContent&nbsp;(BodyContent&nbsp;out)&nbsp;&nbsp;&nbsp;&nbsp;在一保护成员变量bodyContent中保存新的体内容对象，子类可直接访问此对象。<br>public&nbsp;void&nbsp;doInitBody()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;缺省什么都不做。被需要执行初始化的子类所复写。<br>public&nbsp;int&nbsp;doAfterBody()&nbsp;throws&nbsp;JspException&nbsp;&nbsp;&nbsp;&nbsp;每次体被评估后由JSP&nbsp;servlet调用，体同容对象仍处于激活状态。返回SKEP_BODY或EVAL_BODY_TAG则体再次被评估<br>public&nbsp;void&nbsp;release()&nbsp;&nbsp;&nbsp;&nbsp;设置bodyContent对象为null，然后调用super.release()。<br>public&nbsp;BodyContent&nbsp;getBodyContent()&nbsp;&nbsp;&nbsp;&nbsp;返回bodyContent变量。子类已经可以访问保护变量，但此方法允许无关的标签处理类对此体内容发送输出。<br>public&nbsp;JspWriter&nbsp;getPreviousOut()&nbsp;&nbsp;&nbsp;&nbsp;在bodyContent变量上调用getEnclosingWriter()并返回结果的简便方法。<br><br>5.体标签处理器的生命期<br><br>a.生成servlet需要创建标签处理器类的一个实例。实现方式通常是调用JSP容器的工厂类的一个方法，工厂类包含一个标签处理器实例池以使其可重用不再处于激活状态的对象。<br>b.初始化标签处理器，使servlet获知其存在性。servlet通过调用标签处理器的两个方法实现此过程：setPageContext(PageContext&nbsp;ctx)和setParent(Tag&nbsp;parent)。<br>c.如果标签具有属性，属性的取值通过处理器提供setter方法传入到对象。属性setter方法是一个标签支持属性所需的唯一方法。<br>d.页面的上下文和父标签已被调置，并已具备属性。调用标签处理器的doStartTag()方法，该方法可以读取这些变量并执行实现标答功能所需的计算和操作。<br>doStartTag()方法必须返回一个整型数。<br>返回EVAL_BODY_TAG则正常处理标签体（跳到e）；<br>返回SKIP_BODY则从初始JSP页面中直到此标签结束标记处的内容均被忽略。（跳到f）<br>e.如果返回EVAL_BODY_TAG时，则正常处理标签体。<br>&nbsp;&nbsp;&nbsp;&nbsp;e1.在栈中保存当前的JspWriter对象，创建新的BodyContent对象，并将其置为JSP页面的out对象保存在上下文范围内名为name的属性中。并调用它的setBodyContent()方法。<br>&nbsp;&nbsp;&nbsp;&nbsp;e2.调用doInitBody()方法进行初始化。<br>&nbsp;&nbsp;&nbsp;&nbsp;e3.处理标签体。将输出写入BodyContent对象中，此过程依赖于TLD的标签元素&lt;bodycontent&gt;，有三种可能取值。<br>&nbsp;&nbsp;&nbsp;&nbsp;e4.调用doAfterBody()方法，将体内体内容写入JspWriter，可如下实现：<br>JspWriter&nbsp;out=bodyContent.getEnclosingWriter();<br>out.println(bodyContent.getString());//bodyContent.writeOut(out);<br>bodyContent.clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;e5.doAfterBody()方法返回两种可能：<br>返回EVAL_BODY_TAG时，再对标签体进行评估，这是数组和枚举被循环处理的典型情况。<br>&nbsp;&nbsp;&nbsp;&nbsp;返回SKIP_PAGE时，继续页面的其余部份。<br>e6.体内容完成，因此创建它的过程被反向：<br>&nbsp;&nbsp;&nbsp;&nbsp;调用pageContent.popBody()方法检索前面的JspWriter对象。<br>&nbsp;&nbsp;&nbsp;&nbsp;将写入者设置回out隐含对象。<br>f.标签体被评估或忽视后调用doEndTag()方法，允许标签处理器像输出流发回内容。<br>返回EVAL_PAGE则页面的其余部分被评估；<br>返回SKIP_PAGE则servlet代码立即从_jspService()中返回。<br>g.&nbsp;此时体的内容在受保护的bodyContent对象中仍然可用。<br>可以将它写入servlet输出流中：<br>JspWriter&nbsp;out=pageContext.getOut();<br>out.println(bodyContent.getString());<br>或者<br>bodyContent.WriteOut(pageContext.getOut());<br><br>6.标签附加信息类<br><br><br>四、标签指令<br><br>taglib指令元素的目的是指定TLD的位置，设置在页面上与标签区分开来的一个短别名。<br>语法：&lt;%@&nbsp;taglib&nbsp;prefix=&#8221;tag&nbsp;prefix&#8221;&nbsp;uri=&#8221;taglibURI&#8221;&nbsp;%&gt;<br>属性：prefix：用于标识标签库的唯一标识。uri：标签库本身的URI。<br>uri不必指向一个实际文件，它是JSP容器可以在web.xml中查找实际文件位置的唯一标识符。</p>
<p>引自：<a target="_blank" href="http://www.javaresearch.org/article/showarticle.jsp?column=106&amp;thread=51309">http://www.javaresearch.org/article/showarticle.jsp?column=106&amp;thread=51309</a></p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:57 <a href="http://www.blogjava.net/cgogg/articles/123811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解所有源码下载</title><link>http://www.blogjava.net/cgogg/articles/123805.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123805.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123805.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123805.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123805.html</trackback:ping><description><![CDATA[JSTL详解所有源码下载：<br>
URL：http://www.leemenz.com/mms/mmsgif/JSTL_SRC.rar
<br>解压密码：<strong> <font color="#0000bb" size="4">解压密码：xxx_programer</font></strong>
<br><br><img src ="http://www.blogjava.net/cgogg/aggbug/123805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:43 <a href="http://www.blogjava.net/cgogg/articles/123805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（四）</title><link>http://www.blogjava.net/cgogg/articles/123801.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123801.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123801.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123801.html</trackback:ping><description><![CDATA[<p><font size="2">迭代标签的使用</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">如果使用scriptlets,那么，我们经常使用Iterator或者Enumeration来进行迭代，如：</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator it = collection.iterator();</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(it.hasNext()){</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SomeBean someBean = (SomeBean)it.next();</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(someBean.getXXX());</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;&#8230;&#8230;..</font></p>
<p><font size="2">}</font></p>
<p><font size="2">在前面的一次中，我们开发过一个迭代标签，JSTL中也提供了对迭代进行支持的标签，并且，他的功能比上一章的强大的多。JSTL中的迭代标签有两个：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach&gt;;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forTokens&gt;;</font></p>
<p><font size="2">1、&lt;c:forTokens&gt;专门处理TokenString的迭代，可以指定一个或者是多个分隔符。由于他们使用的很少，在这里就不介绍了。</font></p>
<p><font size="2">2、&lt;c:forEach&gt;是最常用的，他几乎能够完成所有的迭代任务，就象jsp中的for(int i=j;i&lt;k;i++)下面我来详细介绍。(注意，&#8220;[]&#8221;里面的是可选条件)</font></p>
<p><font size="2">语法：a、在Collection中迭代：</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach [var=&#8221;varName&#8221;] items=&#8221;collection&#8221; &nbsp;[varStatus=&#8221;varStatusName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [begin=&#8221;begin&#8221;] [end=&#8221;end&#8221;] [step=&#8221;step&#8221;]&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body 内容</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、迭代固定的次数：</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach [var=&#8221;varName&#8221;] [varStatus=&#8221;varStatusName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin=&#8221;begin&#8221; end=&#8221;end&#8221; [step=&#8221;step&#8221;]&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body 内容</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach&gt;</font></p>
<p><font size="2">举例：c_forEach1.jsp(在Collection中迭代)</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;%@ page import="java.util.*,com.j2ee14.ch12.User"%&gt;</font></p>
<p><font size="2">&lt;%</font></p>
<p><font size="2">&nbsp;&nbsp; Collection users_c=new ArrayList();</font></p>
<p><font size="2">&nbsp;&nbsp; for(int i=0;i&lt;3;i++)</font></p>
<p><font size="2">&nbsp;&nbsp; {</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User user=new User();</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setUserName("foo"+i);</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setPassword("foo"+i);&nbsp;&nbsp; &nbsp; &nbsp;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users_c.add(user);</font></p>
<p><font size="2">&nbsp;&nbsp; }</font></p>
<p><font size="2">&nbsp;&nbsp; session.setAttribute("users",users_c);</font></p>
<p><font size="2">%&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:forEach的使用之一&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;&lt;center&gt;</font></p>
<p><font size="2">&lt;h4&gt;迭代某个collection中的元素。&lt;/h4&gt;</font></p>
<p><font size="2">&lt;table border=1&gt;</font></p>
<p><font size="2">&lt;tr&gt;&lt;td&gt;用户名&lt;/td&gt;&lt;td&gt;密码&lt;/td&gt;&lt;/tr&gt;</font></p>
<p><font size="2">&lt;c:forEach var="users" items="${users}"&gt;</font></p>
<p><font size="2">&nbsp; &lt;tr&gt;</font></p>
<p><font size="2">&nbsp; &lt;td&gt;&lt;c:out value="${users.userName}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp; &lt;td&gt;&lt;c:out value="${users.password}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp; &lt;/tr&gt;</font></p>
<p><font size="2">&lt;/c:forEach&gt;</font></p>
<p><font size="2">&nbsp;&nbsp; &lt;/table&gt;&nbsp;&nbsp; </font></p>
<p><font size="2">&lt;/center&gt;&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">举例：c_forEach2.jsp（迭代固定的次数）</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;tcounttle&gt;JSTL:c:forEach的使用之二&lt;/tcounttle&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;&lt;center&gt;</font></p>
<p><font size="2">&lt;h4&gt;第二种迭代：50－60&lt;/h4&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:forEach var="count" begin="50" end="60"&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:out value="${count}"/&gt; **</font></p>
<p><font size="2">&lt;/c:forEach&gt;</font></p>
<p><font size="2">&lt;h4&gt;第二种迭代：10 to 100,step=10&lt;/h4&gt;</font></p>
<p><font size="2">&lt;c:forEach var="count" begin="10" end="100" step="10"&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:out value="${count}"/&gt;**</font></p>
<p><font size="2">&lt;/c:forEach&gt;</font></p>
<p><font size="2">&lt;/center&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:36 <a href="http://www.blogjava.net/cgogg/articles/123801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（七）</title><link>http://www.blogjava.net/cgogg/articles/123802.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123802.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123802.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123802.html</trackback:ping><description><![CDATA[<p><font size="3"><font color="#ff0000"><strong> SQL相关的标签（二）</strong> </font></font></p>
<font><font color="#ff0000">
<p><font color="#000000" face="Times new roman" size="2">&lt;sql:update&gt;</font></p>
<p><font color="#000000"><font size="2">作用：主要是执行插入、更新和删除操作的标签。另外，还有一些没有返回结果集的<font face="Times New Roman">sql</font>操作也可以使用这个标签。比如</font></font></p>
<p><font color="#000000" face="Times new roman" size="2">create table tableName(id int&#8230;.);</font></p>
<p><font color="#000000" face="Times new roman" size="2">drop table tableName</font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">grant tableName&nbsp;&nbsp; </font>等等。。</font></font></p>
<p><font color="#000000"><font size="2">语法：<font face="Times New Roman">a</font>、没有<font face="Times New Roman">body</font>的情况</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:update sql=&#8221;sqlUpdate&#8221;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">[dataSource=&#8221;dataSource&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[var=&#8221;varName&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[scope=&#8221;{page|session|request|application}&#8221;]/&gt;</font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b</font>、有<font face="Times New Roman">body </font>，并且在<font face="Times New Roman">body</font>中指定参数</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:update sql=&#8221;sqlUpdate&#8221;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">[dataSource=&#8221;dataSource&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[var=&#8221;varName&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[scope=&#8221;{page|session|request|application}&#8221;] &gt;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;sql:param&gt;&nbsp; actions</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;/sql:update&gt;</font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c</font>、有<font face="Times New Roman">body</font>，在<font face="Times New Roman">body</font>中指定<font face="Times New Roman">sql</font>语句和可选的参数</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:update sql=&#8221;sqlUpdate&#8221;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">[dataSource=&#8221;dataSource&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[var=&#8221;varName&#8221;]</font></p>
<p><font color="#000000" face="Times new roman" size="2">[scope=&#8221;{page|session|request|application}&#8221;] &gt;</font></p>
<p><font color="#000000" face="Times new roman" size="2">Update statement</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;sql:param&gt;&nbsp; actions</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;/sql:update&gt;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&nbsp;</font></p>
<p><font color="#000000"><font size="2">举例：<font face="Times New Roman">sql_update.jsp</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;html&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;head&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp; &lt;title&gt;JSTL:</font>的使用<font face="Times New Roman">&lt;/title&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/head&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:setDataSource</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; var="ds2"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; dataSource="jdbc/ch12"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">/&gt;</font></font></font></p>
<p><font color="#000000"><font size="2">更新记录值<font face="Times New Roman">1&lt;hr&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update1" dataSource="${ds2}"&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp; update sql_test set power='low' where id=01</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/sql:update&gt;</font></font></font></p>
<p><font color="#000000"><font size="2">第<font face="Times New Roman">2</font>种更新：创建表<font face="Times New Roman">&lt;hr&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update4" sql="create table sql_temp_901(test varchar(20))" dataSource="${ds2}"/&gt;&nbsp;&nbsp; </font></font></font></p>
<p><font color="#000000"><font size="2">第<font face="Times New Roman">3</font>种更新：增加记录</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update5" sql="insert into sql_temp_901 values('hellking')" dataSource="${ds2}"/&gt;</font></font></font></p>
<p><font color="#000000"><font size="2">第<font face="Times New Roman">4</font>种更新：删除记录<font face="Times New Roman">&lt;hr&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update6" sql="delete from sql_temp_901 where test='hellking'" dataSource="${ds2}"/&gt;&nbsp;&nbsp; </font></font></font></p>
<p><font color="#000000"><font size="2">第<font face="Times New Roman">5</font>种更新<font face="Times New Roman">:</font>删除表<font face="Times New Roman">&lt;hr&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update7" sql="drop table sql_temp_901" dataSource="${ds2}"/&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/body&gt;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;/html&gt;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&nbsp;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;sql:transaction&gt;</font></p>
<p><font color="#000000"><font size="2">作用：用语事务处理，它为<font face="Times New Roman">&lt;sql:query&gt;</font>和<font face="Times New Roman">&lt;sql:update&gt;</font>建立事务处理上下文，并且提供相同的数据源。</font></font></p>
<p><font color="#000000"><font size="2">语法：<font face="Times New Roman">&lt;sql:transation [dataSource=&#8221;dataSourceName&#8221;]&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [isolation=&#8221;isolationLevel&#8221;]&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:query&gt; and &lt;sql:update&gt; statement</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sql:transation&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isolationLevel ::=&#8221;read_committed&#8221;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&#8221;read_uncommitted&#8221;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&#8221;repeatable_read&#8221;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&#8221;serializable&#8221;</font></font></font></p>
<p><font color="#000000"><font size="2">注意：<font face="Times New Roman">DataSource</font>属性和其他标签的<font face="Times New Roman">DataSource</font>属性一样，<font face="Times New Roman">isolactionlevel</font>属性指定事务隔离的级别，如果没有指定它的值，那么就使用自己配置的<font face="Times New Roman">DataSource</font>事务隔离级别。而且，嵌套在里面的<font face="Times New Roman">&lt;sql:query&gt; </font>和<font face="Times New Roman"> &lt;sql:update&gt;</font>标签不能再指定其他的数据源。<font face="Times New Roman">&lt;sql:transaction&gt;</font></font></font></p>
<p><font color="#000000" size="2">是数据库封装的轻量级事务处理，如果你需要复杂的事务处理或者分布试处理，它就不适合。</font></p>
<p><font color="#000000"><font size="2">举例：<font face="Times New Roman">sql_transaction.jsp</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;html&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;head&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp; &lt;title&gt;JSTL:sql:transaction</font>的使用<font face="Times New Roman">&lt;/title&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/head&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:setDataSource</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; var="ds2"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; dataSource="jdbc/ch12"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">/&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&lt;h2&gt;</font>使用事务处理方式创建一个表：<font face="Times New Roman">&lt;/h2&gt;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">&nbsp;</font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:transaction dataSource="${ds2}"&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; &lt;sql:update var="test_temp902"&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp; create table test_temp902 (</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id int primary key,</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name varchar(80)</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp; )</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; &lt;/sql:update&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; &lt;sql:update sql="insert into test_temp902 values(01,'wyy')"/&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; &lt;sql:update sql="update sql_test set power='wyy' where id=01"/&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/sql:transaction&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/body&gt;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;/html&gt;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&nbsp;</font></p>
<p><font color="#000000" face="Times new roman" size="2">&lt;sql:param&gt;</font></p>
<p><font color="#000000"><font size="2">作用：设置<font face="Times New Roman">sql</font>语句中&#8220;？&#8221;表示的占位符号的值。</font></font></p>
<p><font color="#000000"><font size="2">语法：<font face="Times New Roman">a</font>、没有<font face="Times New Roman">body</font>，使用<font face="Times New Roman">value</font>指定。</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:param value=&#8221;value&#8221;/&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b</font>、在<font face="Times New Roman">body</font>中指定</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:param&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>参数值</font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sql:param&gt;</font></font></font></p>
<p><font color="#000000"><font size="2">举例：<font face="Times New Roman">sql_param.jsp</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;html&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;head&gt;</font></font></font></p>
<p><font color="#000000"><font size="2"><font face="Times New Roman">&nbsp; &lt;title&gt;JSTL:sql:param</font>的使用<font face="Times New Roman">&lt;/title&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/head&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:setDataSource</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; var="example"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp; dataSource="jdbc/ch12"</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">/&gt;</font></font></font></p>
<p><font color="#000000" face="Times new roman" size="2">&nbsp;</font></p>
<p><font color="#000000"><font size="2">执行更新操作：<font face="Times New Roman">&lt;hr&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;sql:update var="update2" sql="update sql_test set power=? where id=?" dataSource="${example}"&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp; &lt;sql:param value="high"/&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&nbsp;&nbsp; &lt;sql:param value="01"/&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/sql:update&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/body&gt;</font></font></font></p>
<p><font color="#000000"><font face="Times New Roman"><font size="2">&lt;/html&gt;</font></font></font></p>
</font></font>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:36 <a href="http://www.blogjava.net/cgogg/articles/123802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（五）</title><link>http://www.blogjava.net/cgogg/articles/123799.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123799.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123799.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123799.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123799.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123799.html</trackback:ping><description><![CDATA[<p><font size="2">首先，感谢大家的关注，下面我来继续讲解：URL相关的标签，他们的作用主要是负责页面的导航、重定向、资源的获得以及参数的传递等等，他们有：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:import&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:redirect&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:url&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:param&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:import&gt;</font></p>
<p><font size="2">作用：导入一个url的资源，相当于jsp 中的&lt;jsp:include page=&#8221;path&#8221;&gt;标签，同样也可以把参数传递到被导入的页面。</font></p>
<p><font size="2">语法：a、资源的内容使用string对象向外暴露</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:import url=&#8221;url&#8221; [context=&#8221;context&#8221;]</font></p>
<p><font size="2">[var=&#8221;varName&#8221;] [scope=&#8221;{page|request|session|application}&#8221;]</font></p>
<p><font size="2">[charEncoding=&#8221;charEncoding&#8221;]&gt;</font></p>
<p><font size="2">Optional body content for &lt;c:param&gt; subtags</font></p>
<p><font size="2">&lt;/c:import&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、资源的内容使用redirect对象向外暴露</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:import url=&#8221;url&#8221; [context=&#8221;context&#8221;]</font></p>
<p><font size="2">varReader=&#8221;varReaderName&#8221;</font></p>
<p><font size="2">[charEncoding=&#8221;charEncoding&#8221;]&gt;</font></p>
<p><font size="2">Body content where varReader is consumed by another action </font></p>
<p><font size="2">&lt;/c:import&gt;</font></p>
<p><font size="2">举例：c_import.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:import的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;h3&gt;绝对路径 URL&lt;/h3&gt;</font></p>
<p><font size="2">&lt;blockquote&gt;</font></p>
<p><font size="2">&lt;ex:escapeHtml&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:import url="http://127.0.0.1:8080/ch12/footer.jsp"/&gt;</font></p>
<p><font size="2">&lt;/ex:escapeHtml&gt;</font></p>
<p><font size="2">&lt;/blockquote&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;h3&gt;相对路径并且传递参数到指定的URL&lt;/h3&gt;</font></p>
<p><font size="2">&lt;blockquote&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:import url="footer.jsp" charEncoding="gb2312"&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:param name="userName" value="hellking"/&gt;</font></p>
<p><font size="2">&nbsp;&lt;/c:import&gt;&nbsp; </font></p>
<p><font size="2">&lt;/blockquote&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:redirect&gt;</font></p>
<p><font size="2">作用：把客户的请求发送到另一个资源，相当于jsp中的&lt;%&nbsp; request.sendRedirect(&#8220;other.jsp&#8221;)%&gt;或者servlet中的RequestDispatch.forward(&#8220;other.jsp&#8221;)的功能。</font></p>
<p><font size="2">语法：a、没有body的情况</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:redirect url=&#8221;value&#8221; [context=&#8221;context&#8221;]/&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、有body，在body 中查询指定的参数</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:redirect url=&#8221;value&#8221; [context=&#8221;context&#8221;]&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:param&gt; subtags</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:redirect&gt;</font></p>
<p><font size="2">举例：c:redirect.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:redirect的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#cc99cc"&gt;</font></p>
<p><font size="2">&lt;c:url value="footer.jsp" var="nextpage"&gt;&lt;c:param name="userName" value="hellking"/&gt;&lt;/c:url&gt;</font></p>
<p><font size="2">&lt;c:redirect url="${nextpage}"/&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:url&gt;</font></p>
<p><font size="2">作用：用于构造URL，主要的用途是URL的重写。</font></p>
<p><font size="2">语法：a、没有body的情况</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:url value=&#8221;value&#8221; [context=&#8221;context&#8221;]</font></p>
<p><font size="2">[var=&#8221;varName&#8221;] [scope=&#8221;{page|request|session|application}&#8221;]/&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、有body ，并在body 中有重写的参数</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:url value=&#8221;value&#8221; [context=&#8221;context&#8221;]</font></p>
<p><font size="2">[var=&#8221;varName&#8221;] [scope=&#8221;{page|request|session|application}&#8221;]&gt;</font></p>
<p><font size="2">&lt;c:param&gt; subtags</font></p>
<p><font size="2">&lt;/c:url&gt;</font></p>
<p><font size="2">举例：c_url.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL c:url 的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;c:url var="footer" value="footer.jsp" scope="page"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:param name="id" value="hellking"/&gt;</font></p>
<p><font size="2">&lt;/c:url&gt;</font></p>
<p><font size="2">&lt;c:out value="${footer}"/&gt;</font></p>
<p><font size="2">&lt;br&gt;另一种没有参数的URL&lt;br&gt;</font></p>
<p><font size="2">&lt;c:url value="footer.jsp"/&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:param&gt;</font></p>
<p><font size="2">作用：它是在&lt;c:import&gt;，&lt;c:redirectt&gt;，&lt;c:url&gt;中添加请求的参数。和一般的参数没什么区别。</font></p>
<p><font size="2">语法：a、参数的值使用value属性指定</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:param name=&#8221;name&#8221; value=&#8221;value&#8221;/&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、参数的值在body 中指定</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:param name=&#8221;name&#8221;&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数值</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:param&gt;</font></p>
<p><font size="2">举例：c_param.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL c:param的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:redirect url="footer.jsp"&gt;</font></p>
<p><font size="2">&lt;c:param name="userName"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp; hellking</font></p>
<p><font size="2">&lt;/c:param&gt;</font></p>
<p><font size="2">&lt;/c:redirect&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123799.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:34 <a href="http://www.blogjava.net/cgogg/articles/123799.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（六）</title><link>http://www.blogjava.net/cgogg/articles/123800.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123800.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123800.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123800.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123800.html</trackback:ping><description><![CDATA[<p><font size="2">今天，我来讲解下一些很重要的jstl标签，如果运用得当，可以大大的简化数据库的操作，减少代码量。首先sql标签可以实现包括查询、更新、事务处理和设置数据源等强大的功能。下面分别讲述。</font></p>
<p><font size="2"></font>&nbsp;</p>
<font size="2">
<p><font face="Times new roman" size="3">&lt;sql:setDataSource&gt;</font></p>
<p><font face="Times new roman" size="3">&lt;sql:query&gt;</font></p>
<p><font face="Times new roman" size="3">&lt;sql:update&gt;</font></p>
<p><font face="Times new roman" size="3">&lt;sql:transaction&gt;</font></p>
<p><font face="Times new roman" size="3">&lt;sql:param&gt;</font></p>
</font>&nbsp;
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;sql:setDataSource&gt;</font></p>
<p><font size="2">语法：&lt;sql:setDataSource&gt;用来设置数据源，可以通过scope设置使用范围，如page、application、session等。有两种方式可以设置数据源，一种是直接使用在web中配置的数据源，只要指定jndi名就可以了（这个就不要我多讲了吧，呵呵），第二种是指定所有的连接属性。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:setDataSource</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{dataSource=&#8221;dataSourceName&#8221; |&nbsp;&nbsp; url=&#8221;jdbcurl&#8221; </font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[driver=&#8221;driverClassName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[user=&#8221;userName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; [password=&#8221;password&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; [var=&#8221;varName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[scope=&#8221;{page|session|request|application}&#8221;]/&gt;</font></p>
<p><font size="2">举例：sql_datasource.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:&lt;sql:setDataSource&gt;的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">创建普通的数据源：&lt;br&gt;</font></p>
<p><font size="2">&lt;sql:setDataSource</font></p>
<p><font size="2">&nbsp; var="ds1"</font></p>
<p><font size="2">&nbsp; driver="com.mysql.jdbc.Driver"</font></p>
<p><font size="2">&nbsp; url="jdbc:mysql://localhost:3306/jstlTest"</font></p>
<p><font size="2">&nbsp; user="jstl"</font></p>
<p><font size="2">&nbsp; password="jstl"</font></p>
<p><font size="2">/&gt;</font></p>
<p><font size="2">从jndi名称空间中获得一个数据源。&lt;br&gt;</font></p>
<p><font size="2">&lt;sql:setDataSource</font></p>
<p><font size="2">&nbsp; var="ds2"</font></p>
<p><font size="2">&nbsp; dataSource="jdbc/ds2"</font></p>
<p><font size="2">/&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;sql:query&gt;</font></p>
<p><font size="2">作用：不用说都知道了，数据库操作中最频繁的查询。</font></p>
<p><font size="2">语法：a、没有body</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:query sql=&#8221;sqlQuery&#8221;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Var=&#8221;varName&#8221; [scope=&#8221;{page|session|request|application}&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=&#8221;dataSourceName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [maxRows=&#8221;maxRows&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [startRow=&#8221;startRow&#8221;] /&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、有一个body ，并在body 中指定了查询需要的参数</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:query sql=&#8221;sqlQuery&#8221;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Var=&#8221;varName&#8221; [scope=&#8221;{page|session|request|application}&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=&#8221;dataSourceName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [maxRows=&#8221;maxRows&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [startRow=&#8221;startRow&#8221;] &gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:param&gt; actions</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sql:query&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c、有body，并且可以指定可选的参数（&lt; sql:param &gt;在后面讲述）</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sql:query sql=&#8221;sqlQuery&#8221;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Var=&#8221;varName&#8221; [scope=&#8221;{page|session|request|application}&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [dataSource=&#8221;dataSourceName&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [maxRows=&#8221;maxRows&#8221;]</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [startRow=&#8221;startRow&#8221;] &gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optional&lt;sql:param&gt; actions</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sql:query&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">举例：sql_query.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:&lt;sql:query&gt;的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;sql:setDataSource</font></p>
<p><font size="2">&nbsp; var="ds2"</font></p>
<p><font size="2">&nbsp; dataSource="jdbc/ch12"</font></p>
<p><font size="2">/&gt;</font></p>
<p><font size="2">第一种查询：&lt;hr&gt;</font></p>
<p><font size="2">&lt;sql:query var="query" dataSource="${ds2}"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; SELECT * FROM sql_test</font></p>
<p><font size="2">&lt;/sql:query&gt;</font></p>
<p><font size="2">&lt;table border="1"&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:forEach var="row" items="${query.rows}"&gt;</font></p>
<p><font size="2">&nbsp; &lt;tr&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;td&gt;Name: &lt;c:out value="${row.id}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;td&gt;mobile: &lt;c:out value="${row.power}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp; &lt;/tr&gt;</font></p>
<p><font size="2">&nbsp; &lt;/c:forEach&gt;</font></p>
<p><font size="2">&lt;/table&gt;</font></p>
<p><font size="2">&lt;hr&gt;</font></p>
<p><font size="2">第2种查询：&lt;hr&gt;</font></p>
<p><font size="2">&lt;sql:query var="query2" sql="SELECT * FROM sql_test where id=?" dataSource="${ds2}"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp; &lt;sql:param value="01"/&gt;</font></p>
<p><font size="2">&lt;/sql:query&gt;</font></p>
<p><font size="2">&lt;table border="1"&gt;</font></p>
<p><font size="2">&nbsp; &lt;c:forEach var="row" items="${query2.rows}"&gt;</font></p>
<p><font size="2">&nbsp; &lt;tr&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;td&gt;Name: &lt;c:out value="${row.id}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp; &nbsp;&nbsp;&lt;td&gt;mobile: &lt;c:out value="${row.power}"/&gt;&lt;/td&gt;</font></p>
<p><font size="2">&nbsp; &lt;/tr&gt;</font></p>
<p><font size="2">&nbsp; &lt;/c:forEach&gt;</font></p>
<p><font size="2">&lt;/table&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:34 <a href="http://www.blogjava.net/cgogg/articles/123800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（三）</title><link>http://www.blogjava.net/cgogg/articles/123798.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123798.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123798.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123798.html</trackback:ping><description><![CDATA[<font size="2"><br>今天，我们来继续学习jstl，今天的内容是<font color="#ff0000">条件标签</font>。</font>
<p><font size="2">条件标签包括以下几种：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if&gt;;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:choose&gt;;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:when&gt;;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:otherwise&gt;;</font></p>
<p><font size="2">下面，我来分别介绍：</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if&gt;; 它用来做条件判断，功能类似jsp中的&lt;%if(boolean){}%&gt;</font></p>
<p><font size="2">语法：</font><br><font size="2">1</font><font size="2">、无body的情况</font><br><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if test=&#8221;testCondition&#8221; var=&#8221;varName&#8221; [scope=</font>&#8220;{page|request|session|application}&#8221;<font size="2">]/&gt;</font></p>
<p><font size="2">2、有body的情况</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if test=&#8221;testCondition&#8221; var=&#8221;varName&#8221; [scope=&#8220;{page|request|session|application}&#8221;]&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body内容</font></p>
<p><font size="2">&lt;/c:if&gt;</font></p>
<p><font size="2">举例：</font><font size="2">c_if.jsp<br>&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:if的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;c:set var="count" value="100"/&gt;</font></p>
<p><font size="2">&lt;c:if test="${count&gt;78}"&gt;</font></p>
<p><font size="2">count&gt;78</font></p>
<p><font size="2">&lt;/c:if&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:choose&gt;;&nbsp; 它是用于条件选择，和&lt;c:when&gt;,&lt;c:otherwise&gt;一起使用，它的条件选择是排斥性的，相当于jsp中的&lt;%switch(i){case 0: &#8230; case 1:&#8230; default :}%&gt;，也可以完成&lt;%if{}&#8230;else if{}&#8230;.else if{} else{} %&gt;的功能</font></p>
<p><font size="2">语法：&lt;c:choose&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body内容(&lt;c:when&gt;,&lt;c:otherwise&gt;)</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/c:choose&gt;</font></p>
<p><font size="2">注意：它的body内容只能是由以下的元素组成：</font></p>
<p><font size="2">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 空格；</font></p>
<p><font size="2">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0个或多个&lt;c:when&gt;子标签，&lt;c:when&gt;必须在&lt;c:otherwise&gt;子标签之前出现；</font></p>
<p><font size="2">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0个或多个&lt;c: otherwise &gt;子标签</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:when&gt; 它是&lt;c:choose&gt;的一个分支</font></p>
<p><font size="2">语法：</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:when test=&#8221;testCondition&#8221;&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body内容</font></p>
<p><font size="2">&lt;/c:when&gt;</font></p>
<p><font size="2">注意：它有两个限制：</font></p>
<p><font size="2">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须以&lt;c:choose&gt;作为它的父标签</font></p>
<p><font size="2">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须在&lt;c:otherwise&gt;标签之前出现</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:otherwise&gt;他代表了&lt;c:choose&gt;的最后选择相当于jsp的&lt;%switch(i){case 0: &#8230; case 1:&#8230; default :}%&gt; 中的default语句。</font></p>
<p><font size="2">语法：</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:otherwise&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Conditional block</font></p>
<p><font size="2">&lt;/c:otherwise&gt;</font></p>
<p><font size="2">它的使用有两个限制：</font></p>
<p><font size="2">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须以&lt;c:choose&gt;作为它的父标签；</font></p>
<p><font size="2">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须以&lt;c:choose&gt;的最后分支方式出现；</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:choose&gt;,&lt;c:otherwise&gt;,&lt;c:when&gt;举例：c_choose.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;c:set var="count" value="100"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:choose的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;c:choose&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;c:when test="${count &lt;=0}"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;font color="blue"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;/c:when&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;c:when test="${count&lt;=60&amp;&amp;count&gt;0}"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;font color="red"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;/c:when&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;c:otherwise&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;font color="green"&gt; </font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; &lt;/c:otherwise&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font size="2">&nbsp; &lt;/c:choose&gt;</font></p>
<p><font size="2">count的值是：&lt;c:out value="${count}"/&gt;</font></p>
<p><font size="2">&lt;/font&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">好了，jstl条件标签就介绍到这里，下篇再见。。。。：）</font></p>
<br> <img src ="http://www.blogjava.net/cgogg/aggbug/123798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:32 <a href="http://www.blogjava.net/cgogg/articles/123798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解（二）</title><link>http://www.blogjava.net/cgogg/articles/123797.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123797.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123797.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123797.html</trackback:ping><description><![CDATA[<p><strong> <font size="3">一般用途的标签</font></strong> </p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; 在JSTL中，一般用途的标签只要是指具有输出，设置变量，和错误处理等功能的标签，他们在jsp中使用很频繁，它们有：</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:out&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:set&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:remove&gt;</font></p>
<p><font size="2">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:catch&gt;</font></p>
<p><font size="2">下面，我来讲述一下他们的作用：</font></p>
<p><font size="2">&lt;c:out&gt;</font></p>
<p><font size="2">它是一个输出的标签，负责把计算出的结果输出到jspwriter，就跟调用out.println()基本一样。没有BODY的时候，使用下面的语法：</font></p>
<p><font size="2">&lt;c:out value=&#8221;value&#8221;&nbsp; [escapeXml]=&#8221;{true|false}&#8221;&nbsp; [default=&#8221;defaultValue&#8221;]/&gt;</font></p>
<p><font size="2">有BODY的时候，使用下面的语法：</font></p>
<p><font size="2">&lt;c:out value=&#8221;value&#8221;&nbsp; [escapeXml]=&#8221;{true|false}&#8221; &gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里是BODY，可以是任何合法的jsp或者是html代码。</font></p>
<p><font size="2">&lt;/c:out&gt;</font></p>
<p><font size="2">注意，escapeXml的作用是是否将代码交给xml解析器解释，true为交给xml解析器解释，false为交给浏览器解释，见红色部分代码</font></p>
<p><font size="2">举例：c_out.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL: c:out的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;hr&gt;</font></p>
<p><font size="2">&lt;c:set var="sessionAttr" value="sessionValue" scope="session"/&gt;</font></p>
<p><font size="2">&lt;c:set var="pageAttr" value="pageValue" scope="page"/&gt;</font></p>
<p><font size="2">&lt;c:set var="requestAttr" value="requestValue" scope="request"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:out value="以下输出的是前面设置的属性&lt;br&gt;" escapeXml="false"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:out value="${sessionAttr}"/&gt;</font></p>
<p><font size="2">&lt;c:out value="${pageAttr}"/&gt;</font></p>
<p><font size="2">&lt;c:out value="${requestAttr}"/&gt;</font></p>
<p><font size="2">&lt;c:out value="${test_nodef}" default="没有test_nodef这个变量"/&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:set&gt;</font></p>
<p><font size="2">这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page)，或者设置某个已经存在的javabean的属性。类似于&lt;%request.setAttribute(&#8220;name&#8221;,value)%&gt;</font></p>
<p><font size="2">语法：</font></p>
<p><font size="2">1、使用value属性设置一个特定范围里面的属性：</font></p>
<p><font size="2">&lt;c:set value=&#8221;value&#8221;&nbsp; var=&#8221;varName&#8221; [scope= &#8220;{page|request|session|application}&#8221;]/ &gt;</font></p>
<p><font size="2">2、使用value属性设置一个特定范围里面的属性，带有BODY：</font></p>
<p><font size="2">&lt;c:set value=&#8221;value&#8221;&nbsp; var=&#8221;varName&#8221; [scope= &#8220;{page|request|session|application}&#8221;] &gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body content</font></p>
<p><font size="2">&lt;/c:set&gt;</font></p>
<p><font size="2">3、设置某个特定对象的一个属性：</font></p>
<p><font size="2">&lt;c:set value=&#8221;value&#8221;&nbsp; target=&#8221;target&#8221;&nbsp; property=&#8221;propertyName&#8221;/ &gt;</font></p>
<p><font size="2">4、设置某个特定对象的一个属性, 带有BODY：</font></p>
<p><font size="2">&lt;c:set value=&#8221;value&#8221;&nbsp; target=&#8221;target&#8221;&nbsp; property=&#8221;propertyName&#8221; &gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Body content</font></p>
<p><font size="2">&lt;/c:set&gt;</font></p>
<p><font size="2">举例：c_set.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;jsp:useBean id="user" class="com.j2ee14.ch12.User"/&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:的使用c:set&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;hr&gt;</font></p>
<p><font size="2">设置一个属性，然后输出它&lt;br&gt;</font></p>
<p><font size="2">&lt;c:set var="maxCount" value="100"/&gt;</font></p>
<p><font size="2">&lt;c:out value="${maxCount}"/&gt;</font></p>
<p><font size="2">&lt;hr&gt;设置属性时，把它的值放在标签的body中。</font></p>
<p><font size="2">&lt;c:set var="password"&gt;</font></p>
<p><font size="2">ksdjfxsdf234234</font></p>
<p><font size="2">&lt;/c:set&gt;</font></p>
<p><font size="2">&lt;c:out value="${password}"/&gt;</font></p>
<p><font size="2">&lt;hr&gt;设置javaBean的属性，然后输出这些属性值：</font></p>
<p><font size="2">&lt;c:set value="hellking" target="${user}" property="userName"/&gt;</font></p>
<p><font size="2">userName=&lt;c:out value="${user.userName}"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;hr&gt;设置属性，并且指定它们的范围，属性的默认范围是page。</font></p>
<p><font size="2">&lt;c:set value="20" var="maxIdelTime" scope="session"/&gt;</font></p>
<p><font size="2">&lt;c:set value="next.jsp" var="nextPage" scope="page"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:remove&gt;</font></p>
<p><font size="2">它的作用是删除某个变量或者属性。类似于&lt;%session.removeAttribute(&#8220;name&#8221;)%&gt;,它的语法是：&lt;c:remove var=&#8221;varName&#8221; [scope= &#8220;{page|request|session|application}&#8221;]/ &gt;</font></p>
<p><font size="2">举例：c_remove.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:c:remove的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;c:set value="10000" var="maxUser" scope="application"/&gt;</font></p>
<p><font size="2">&lt;c:set value="10" var="count" scope="session"/&gt;</font></p>
<p><font size="2">maxUser=&lt;c:out value="${maxUser}"/&gt;&lt;br&gt;</font></p>
<p><font size="2">count=&lt;c:out value="${count}"/&gt;</font></p>
<p><font size="2">&lt;hr&gt;调用c:remove...</font></p>
<p><font size="2">&lt;c:remove var="maxUser" scope="application"/&gt;</font></p>
<p><font size="2">&lt;c:remove var="count"/&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">调用了c:remove后，参数值为：</font></p>
<p><font size="2">maxUser=&lt;c:out value="${maxUser}"/&gt;，</font></p>
<p><font size="2">count=&lt;c:out value="${count}"/&gt;，</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<p><font size="2">&nbsp;</font></p>
<p><font size="2">&lt;c:catch&gt;</font></p>
<p><font size="2">它的作用是捕捉由嵌套在它里面的标签所抛出来的异常。类似于&lt;%try{}catch{}%&gt;，它的语法是：&lt;c:catch [var=&#8221;varName&#8221;]&gt;nested actions&lt;/c:catch&gt;</font></p>
<p><font size="2">举例：c_catch.jsp</font></p>
<p><font size="2">&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</font></p>
<p><font size="2">&lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;</font></p>
<p><font size="2">&lt;html&gt;</font></p>
<p><font size="2">&lt;head&gt;</font></p>
<p><font size="2">&nbsp; &lt;title&gt;JSTL:catch的使用&lt;/title&gt;</font></p>
<p><font size="2">&lt;/head&gt;</font></p>
<p><font size="2">&lt;body bgcolor="#FFFFFF"&gt;</font></p>
<p><font size="2">&lt;c:catch var="error"&gt;</font></p>
<p><font size="2">&lt;%</font></p>
<p><font size="2">&nbsp; Integer.parseInt("sdkfj");</font></p>
<p><font size="2">&nbsp;%&gt;</font></p>
<p><font size="2">&nbsp;&lt;/c:catch&gt;</font></p>
<p><font size="2">&nbsp;&lt;hr&gt;异常：</font></p>
<p><font size="2">&nbsp;&lt;c:out value="${error}"/&gt;</font></p>
<p><font size="2">&nbsp;&lt;hr&gt;异常 exception.getMessage=</font></p>
<p><font size="2">&nbsp;&lt;c:out value="${error.message}"/&gt;</font></p>
<p><font size="2">&lt;hr&gt; 异常exception.getCause=</font></p>
<p><font size="2">&nbsp;&lt;c:out value="${error.cause}"/&gt;</font></p>
<p><font size="2">&lt;/body&gt;</font></p>
<p><font size="2">&lt;/html&gt;</font></p>
<br> <img src ="http://www.blogjava.net/cgogg/aggbug/123797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:30 <a href="http://www.blogjava.net/cgogg/articles/123797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTL详解(一)</title><link>http://www.blogjava.net/cgogg/articles/123795.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:29:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123795.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123795.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123795.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123795.html</trackback:ping><description><![CDATA[JSTL详解(一)
<br>先来搭下环境，jstl的包当然是不能少的拉。其次，下载必须的标签库或者是java的标签库文件。<br>&nbsp;&nbsp;&nbsp;&nbsp; 将jstl 1.1.jar加到class中，（这就不要我详细的讲了吧），然后将标签库放到WEB-INF下或则将java的标签库文件（*.jar）放到WEB-INF\lib下，就可以写测试代码了。<br>&nbsp;&nbsp;&nbsp;&nbsp; first_jstl.jsp
<p>&nbsp;&nbsp;&nbsp;&nbsp; &lt;%@ taglib prefix="c" uri="<a href="http://java.sun.com/jsp/jstl/core">http://java.sun.com/jsp/jstl/core</a>" %&gt;<br>&nbsp;&nbsp;&nbsp; &lt;%@ page contentType="text/html; charset=gb2312" language="java" %&gt;<br>&nbsp;&nbsp;&nbsp; &lt;c:set var="userName" value="hellking"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;c:set value="16" var="age"/&gt;<br>&nbsp;&nbsp;&nbsp; 欢迎您，&lt;c:out value="${userName}"/&gt;&lt;hr&gt;<br>&nbsp;&nbsp; &lt;c:forEach var="i" begin="1" end="5"&gt;<br>&nbsp;&nbsp; &lt;font size=${i}&gt;${i}&lt;/font&gt;<br>&nbsp;&nbsp; &lt;br&gt;<br>&nbsp;&nbsp; &lt;/c:forEach&gt;</p>
<p>&nbsp;&nbsp; &lt;c:if test="${age&lt;18}"&gt;<br>&nbsp;&nbsp; &nbsp;对不起，你的年龄过小，不能访问这个网页◎！<br>&nbsp;&nbsp; &lt;/c:if&gt;<br>&nbsp;&nbsp; &lt;br&gt;<br>&nbsp;&nbsp; &lt;/body&gt;<br>&nbsp;&nbsp; &lt;/html&gt;<br><br>&nbsp;&nbsp;&nbsp; web.xml <br>(使用java的标签库文件*.jar)<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;</p>
<p>&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>"<br>&nbsp;&nbsp;&nbsp; xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br>&nbsp;&nbsp;&nbsp; xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a> web-app_2_4.xsd"<br>&nbsp;&nbsp;&nbsp; version="2.4"&gt;<br>&nbsp; &lt;display-name&gt;jstl test&lt;/display-name&gt;<br>&nbsp; &lt;description&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; jstl test<br>&nbsp; &lt;/description&gt;<br>&lt;/web-app&gt;<br><br>(使用标签库文件*.tld)<br><br>&nbsp; &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;</p>
<p>&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>"<br>&nbsp;&nbsp;&nbsp; xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br>&nbsp;&nbsp;&nbsp; xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a> <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>"<br>&nbsp;&nbsp;&nbsp; version="2.4"&gt;<br>&nbsp;<br>&nbsp; &lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/fmt&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/fmt.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/fmt-rt&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/fmt-rt.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/core&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/c.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/core-rt&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/c-rt.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/sql&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/sql.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/sql-rt&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/sql-rt.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/x&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/x.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;</p>
<p>&lt;taglib&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-uri&gt;http://java.sun.com/jstl/x-rt&lt;/taglib-uri&gt;<br>&nbsp;&nbsp;&nbsp; &lt;taglib-location&gt;/WEB-INF/x-rt.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;<br>&lt;/web-app&gt;</p>
<p>好了，一个最简单的包含有jstl的页面设计完成了。下面测试。<br><a href="http://localhost:8080/jstl/frist_jstl.jsp">http://localhost:8080/jstl/frist_jstl.jsp</a><br>页面输出结果：<br><br>欢迎您，hellking </p>
<hr>
<p><font size="1">1</font> <br><font size="2">2</font> <br><font size="3">3</font> <br><font size="4">4</font> <br><font size="5">5</font> <br>对不起，你的年龄过小，不能访问这个网页◎！ <br><br>呵呵。。。简单吧，下篇继续。。。。。：）</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:29 <a href="http://www.blogjava.net/cgogg/articles/123795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>