⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j-customtags-4-1.html

📁 这是用java编写自定义标签的一些源码和笔记
💻 HTML
📖 第 1 页 / 共 2 页
字号:
   
				</td>
</tr>
<tr>
<td height="2" colspan="2"><img height="2" width="1" src="../i/c.gif"></td>
</tr>
</table>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="../i/c.gif"></TD>
</TR>
<TR>
<TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="主菜单" border="0" src="../i/main.gif" name="topmain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index4.html"><img alt="章节菜单" border="0" src="../i/section.gif" name="topsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-customtags-7-3.html"><img alt="给出此教程的反馈意见" border="0" src="../i/feedback.gif" name="topfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img src="../i/c.gif"></TD><TD background="../i/sw-gold.gif"><img border="0" src="../i/xprevious.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="j-customtags-4-2.html"><img alt="下页" border="0" src="../i/next.gif" name="topnext"></a></TD>
</TR>
</TABLE>
<table bgcolor="ffffff" cellspacing="0" cellpadding="2" border="0" height="400" width="100%">
<tr valign="bottom">
<a name="navskip"></a><td height="25" colspan="4"><img alt="4.嵌套标签" src="imagemaster/titlebar4.jpg" border="0" height="25" width="562"></td>
</tr>
<tr>
<td bgcolor="ffffff" width="15">&nbsp;</td><td bgcolor="ffffff" width="12">&nbsp;</td><td valign="top" align="left" bgcolor="ffffff" width="*">
<p>
<br>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="90%"><font size="4" face="Verdana, Arial, Helvetica"><b>理解嵌套标签</b></font></td><td width="200" align="right"><font size="1" face="Verdana, Arial, Helvetica"><nobr>   第 1 页(共3 页)</nobr></font></td>
</tr>
</table>
<br>
<br>
</p>
<font size="2" face="Verdana, Arial, Helvetica">
<p>
          前面的 JSP 页示例使用 JSP  scriptlet 向 employee map 添加项。如果可以用另一个标签来完成就好了。

 让我们定义一个名为 <code>MapEntryTag</code> 的嵌套标签,它通过调用 <code>getParent()</code> 并将它转换为 <code>MapDefineTag</code> 而得到其父标签。 

 

 </p>
<p>
						
<code>MapDefineTag</code> 定义了 <code>getMap()</code> 方法,它返回新创建的 map。 

  <code>doEndTag()</code> 中的嵌套 <code>MapEntryTag</code> 使用 <code>MapDefineTag</code> 的 <code>getMap()</code> 方法向 map 中增加值,如下所示:

 

 </p>
<pre>
<code style="font-family: Courier New, Courier, monospace; font-size: 12">
  

 public class MapEntryTag extends TagSupport {

     String type = "java.lang.String";

     String id;

     String value;

     String name;

     String property;

     String scope;

 

     public int doEndTag() throws JspException {

         /* Grab the MapDefineTag using the getParent 

            method and cast it to a MapDefineTag.*/

         MapDefineTag mapDef = (MapDefineTag) this.getParent();

         Object objectValue = null;

         

                 ...

         /* Instantiate a new String, Integer or Float based on the type. */

         if (type.equals("java.lang.String")) {

             objectValue = value;

         } else if (type.equals("java.lang.Integer")) {

             Integer intValue = Integer.valueOf(value);

             objectValue = intValue;

         } else if (type.equals("java.lang.Float")) {

             Float floatValue = Float.valueOf(value);

             objectValue = floatValue;

         }

         

         /* Put the new entry into the map. */

         mapDef.getMap().put(id,objectValue);

         return EVAL_PAGE;

         

 

 

 </code>
</pre>
<p>
  

 

 在上述代码的基础上,并假定在 TLD 文件中加入了必要的项,则可以像这样使用我们的标签:

 

 </p>
<pre>
<code style="font-family: Courier New, Courier, monospace; font-size: 12">
  

 &lt;%@taglib uri="map" prefix="map"%&gt;

 &lt;html&gt;

 &lt;head&gt;&lt;title&gt;Test Map Define Entry&lt;/title&gt;&lt;/head&gt;

 &lt;body&gt;

 

 &lt;map:mapDefine id="employee"&gt;

    &lt;map:mapEntry id="firstName" value="Jennifer"/&gt;

    &lt;map:mapEntry id="lastName" value="Wirth"/&gt;

    &lt;map:mapEntry id="age" value="33" type="java.lang.Integer"/&gt;

    &lt;map:mapEntry id="salary" value="22.22" type="java.lang.Float"/&gt;   

 &lt;/map:mapDefine&gt;

 

 The employee is set as &lt;%=employee%&gt; &lt;br /&gt;

 

 </code>
</pre>
<p>
  

 

 上述清单定义一个 employee map,其中带有针对 <code>firstName</code>、<code>lastName</code>、<code>age</code> 和 <code>salary</code> 各三项,它们的类型分别为 <code>String</code>、<code>String</code>、<code>Integer</code> 和 <code>Float</code>。 

  


          </p>
<br>
</font></td>
</tr>
</table>
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="主菜单" border="0" src="../i/main.gif" name="bottommain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index4.html"><img alt="章节菜单" border="0" src="../i/section.gif" name="bottomsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-customtags-7-3.html"><img alt="给出此教程的反馈意见" border="0" src="../i/feedback.gif" name="bottomfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img src="../i/c.gif"></TD><TD background="../i/sw-gold.gif"><img border="0" src="../i/xprevious.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="j-customtags-4-2.html"><img alt="下页" border="0" src="../i/next.gif" name="bottomnext"></a></TD>
</TR>
<TR>
<TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="../i/c.gif"></TD>
</TR>
</TABLE>
<TABLE width="100%" cellpadding="0" cellspacing="0" border="0">
<TR>
<TD width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><img alt="" height="1" width="1" src="../i/c.gif"></td>
</tr>
<tr valign="top">
<td class="bbg" height="21"> <a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/index.shtml">关于 IBM</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/privacy/index.shtml">隐私条约</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/legal/index.shtml">法律条款</a><span class="divider"> | </span><a class="mainlink" href="/developerWorks/cgi-bin/click.cgi?url=http://www-900.ibm.com/cn/ibm/contact/index.shtml">联系 IBM</a></td>
</tr>
</table>
</TD>
</TR>
</TABLE>
<script src="//www.ibm.com/common/stats/stats.js" language="JavaScript1.2" type="text/javascript"></script>
<noscript>
<img border="0" alt="" height="1" width="1" src="//stats.www.ibm.com/rc/images/uc.GIF?R=noscript"></noscript>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -