<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 63  文章 - 0  trackbacks - 0
    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    Struts2標簽使用原理解疑
    在筆者下載的Struts2的包中,讀者可以在/lib下找到struts2-core-2.0.11.1.jar包,解壓該包在其根目錄下的/META-INF文件夾下可以看到一個名字為“struts-tags.tld”文件。該文件就是Struts2中所有自帶的標簽庫定義。本節通過對該文件代碼的介紹來讓讀者知曉Struts2內部是如何使用這些標簽來進行工作。并簡單說明JSP中是如何用其來書寫標簽代碼。
    技術要點
    本節代碼說明Struts2內部定義標簽的格式和在JSP中使用方式。
    ? struts-tags.tld文件定標簽定義配置格式。
    ? JSP中使用標簽功能介紹。

    演示代碼
    Java代碼
    1. <!------------------文件名: struts-tags.tld----------------->   
    2. <taglib>   
    3.   <tlib-version>2.2.3</tlib-version>   
    4.   <jsp-version>1.2</jsp-version>   
    5.   <short-name>s</short-name>   
    6.   <uri>/struts-tags</uri>   
    7.   <display-name>"Struts Tags"</display-name>   
    8.   <description>………………</description>   
    9.   <tag>   
    10.     <name>action</name>   
    11.     <tag-class>org.apache.struts2.views.jsp.ActionTag</tag-class>   
    12.     <body-content>JSP</body-content>   
    13.     <description><![CDATA[Execute an action from within a view]]></description>   
    14.     <attribute>   
    15.       <name>executeResult</name>   
    16.       <required>false</required>   
    17.       <rtexprvalue>false</rtexprvalue>   
    18.       <description><![CDATA[Whether the result of this action (probably a view) should be executed/rendered]]></description>   
    19.     </attribute>   
    20.    …………………………   
    21.     <attribute>   
    22.       <name>namespace</name>   
    23.       <required>false</required>   
    24.       <rtexprvalue>false</rtexprvalue>   
    25.       <description><![CDATA[Namespace for action to call]]></description>   
    26.     </attribute>   
    27.   </tag>   
    28. </taglib>  

    代碼解釋
    (1)struts-tags.tld是Struts2自標簽定義文件。所有標簽定義都是在<tablib>和</taglib>之間定義。以<tag></tag>用來定義一個具體標簽。每個標簽因為都可以有很多自己的屬性。這些屬性定義都是以<attribute></attribute>來定義。
    (2)<tlib-version></tlib-version>之間定義的是標簽庫的版本。<jsp-version></jsp-version>定義的是標簽庫這些標簽是支持JSP的哪個版本。<short-name> </short-name>其實是標簽庫的默認名,也可以認為是其昵稱。<uri> </uri>定義的是標簽庫的URI,在JSP中會使用到。<display-name></display-name>是顯示名。<description></description>是標簽庫的記述,記述標簽庫的使用用途等等。
    (3)<attribute>中<name></name>是屬性名稱定義。<required></required>表示的該屬性是否是必須的屬性,如果是必須的則<required></required>之間為true,否則為false。<rtexprvalue></rtexprvalue>表示的是可否使用表達式,大多數標簽都是為false。這里不是不能使用表達式,而是恰恰相反表示可以使用表達式。<description></description>定義和前面介紹相同。
    (4)在JSP中,如之前章節的演示代碼所示,都是在文件頭有個使用標簽的聲明,代碼如下。
    Java代碼
    1. <!---------------------文件名: *.jsp------------------------->   
    2. <%@taglib prefix="s" uri="/struts-tags"%>  

    有了這個聲明,在JSP文件中就可以使用Struts2的標簽。比如form標簽定義要像如下代碼所示。
    Java代碼
    1. <s:form action="upload" ………>  

    記住一定要用“s”,它是Struts2中標簽的默認名也是相當于一個昵稱,當然讀者也可以把它改為自己想取的名字,不過在標簽聲明中的“prefix”中就要改成那個自己取的名字。
    注意:因為筆者使用的Servlet版本是2.3之上的版本,因此沒必要在web.xml中定義標簽庫。如果讀者使用的Servlet版本比較低,則在web.xml文件中需要定義如下的代碼:
    Java代碼
    1. <!----------------------文件名:web.xml----------------------->   
    2. <taglib>   
    3.     <!- 定義URI - ->   
    4.     <taglib-uri>/Struts 2-tags</taglib-uri>   
    5. <!- 定義標簽庫支持的jar包位置- ->   
    6.     <taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location>   
    7. </taglib>  

    只有這樣標簽庫才會在Servlet版本比較低的情況下使用有效果。
    posted on 2009-04-13 15:28 lanxin1020 閱讀(463) 評論(0)  編輯  收藏 所屬分類: struts2
    主站蜘蛛池模板: 精品一区二区三区免费毛片爱 | 亚洲午夜福利精品无码| 亚洲中文字幕无码mv| 一个人免费观看在线视频www| 亚洲视频欧洲视频| 永久看日本大片免费35分钟| 久久国产亚洲高清观看| 最近高清中文字幕免费| 久久亚洲sm情趣捆绑调教| 亚欧在线精品免费观看一区| 亚洲熟妇无码爱v在线观看| 免费看韩国黄a片在线观看| 亚洲综合一区无码精品| 永久免费av无码网站大全| 黄色免费在线网址| 国产亚洲精品精品国产亚洲综合| 日韩av无码免费播放| 精品亚洲成a人片在线观看 | 免费无码又爽又刺激聊天APP| 久久久久久亚洲精品影院| 在线观着免费观看国产黄| 一级毛片a女人刺激视频免费| 亚洲国产日韩在线视频| 嫖丰满老熟妇AAAA片免费看| 亚洲日本va一区二区三区| 免费大学生国产在线观看p| 三年片免费观看大全国语| 亚洲精品视频免费看| 黄a大片av永久免费| 久久毛片免费看一区二区三区| 亚洲综合激情视频| 日本不卡视频免费| a级毛片毛片免费观看永久| 亚洲同性男gay网站在线观看| 国产精品免费小视频| 日韩精品在线免费观看| 亚洲中文字幕无码中文字| 久久被窝电影亚洲爽爽爽| 无码国产精品久久一区免费| 一级中文字幕乱码免费| 亚洲综合图片小说区热久久|