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

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

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

    鐵手劍譜

    上善若水
    數據加載中……
    Struts秘籍之第2段:第3.2式:使用Struts-EL 標簽

    第3.2式. 使用Struts-EL 標簽

    問題

    你希望在將JSTL 表達式用作Struts標簽的屬性值。

    動作要領

    使用Struts 分發保提供的EL標簽庫,位于contrib/struts-el/lib目錄。你需要將所有JAR 和 TLD 文件拷貝到應用的WEB-INF/lib目錄。在需要時用該標簽的地方使用下面的taglib指令:

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html-el" prefix="html-el" %>

     

    表列出了Struts-EL 標簽庫和對應的taglib URI。

    Table 3-2. Apache Struts Web Framework-EL Taglib URIs

    Tag library

    Apache Struts Web Framework-EL Taglib URI (1.1)

    Apache Struts Web Framework-EL Taglib URI (1.2)

    html-el

    http://jakarta.apache.org/struts/tags-html-el

    http://struts.apache.org/tags-html-el

    bean-el

    http://jakarta.apache.org/struts/tags-bean-el

    http://struts.apache.org/tags-bean-el

    logic-el

    http://jakarta.apache.org/struts/tags-logic-el

    http://struts.apache.org/tags-logic-el

     

    動作變化

    JSTL風格的表達式,比如${foo.bar[4].baz},并不能夠被基本的 Apache Struts Web Framework 標簽支持。例如,如果你能夠使用下面的方式來格式化一個標簽就好了:

     

    <html:text value="${sessionScope.foo.bar[3]}"/> 

     

    相反,這些標簽需要運行時表達式,它們只是Java 代碼(JS表達式):

     

    <html:text value="<%=session.((Foo)getAttribute("foo")).getBar(3)%>"/> 

     

    將Java 代碼從 JSP 頁面中剔除會使得你的頁面更少脆弱性和更容易維護。認識到了這種對EL 支持的缺乏后,因而創建了Apache Struts Web Framework-EL 標簽庫。這些庫擴展了html, bean, and logic Apache Struts Web Framework 標簽庫,以添加對EL 表達式的支持。如果一個Struts 標簽的屬性支持一個運行時表達式,對應的Struts-EL 標簽便會支持JSTL 表達式。可以在應用中混合使用常規的Struts 標簽和Struts-EL 標簽,即使在同一個頁面中也可以。僅僅是需要保證在頁面的taglib指令中為每一個標簽庫定義一個不同的前綴。

    然而,Struts-EL 標簽不是JSTL的替代。Struts-EL 標簽僅提供僅僅針對Struts的標簽。如果Struts 標簽可以被一個JSTL 標簽所替代,該標簽就不會在Struts-EL 標簽庫中實現。

    關于JSP 2.0

    如果你使用支持JSP 2.0的容器,比如Tomcat 5,那么你便可以直接在基本Struts 標簽中使用JSTL表達式。這就是說,不再需要使用Struts-EL 標簽了。JSP 2.0 支持EL 表達式在頁面中的直接使用。這些表達式可以用來渲染動態文本,就像原來常規HTML 標記和定制JSP標簽中的動態屬性值中的文本一樣。表達式的值就像是你使用JSTL c:out標簽輸出的一樣:

     

    <p>Hello, ${user.firstName}<br /><html:text value="${sessionScope.foo.bar[3]}"/> 

     

    為了使用這個強大的特征,你必須是用兩種方式之一來激活EL 。如果你使用Servlet 2.4 規范, EL 則默認是支持的。你可以通過你的應用的web.xml文件來區別是不是2.4版本的servlet規范。該文件的開頭應該是這樣:

     

    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4"> 

     

    如果你使用Version 2.3 或者更早的規范,你將需要在JSP頁面的開頭使用下面的JSP 指令進行設置:

     

    <%@page isELIgnored="false"%> 

     

    如果你使用2.4 DTD,那么你不需要設置這個指令;EL 語法將不會被忽略。如果你不確定,盡管可以設置它,這不會發生什么錯誤問題。

     

    相關招式

    第3.1式詳細描述了如何配置JSTL的使用。

    posted on 2005-05-27 14:29 鐵手 閱讀(4882) 評論(3)  編輯  收藏 所屬分類: JavaStruts系列

    評論

    # Struts 秘籍(CookBook)[TrackBack] 2005-11-12 18:29 阿泠

    本系列源改編自O'Reily的Strus Cookbook
    [引用提示]阿泠引用了該文章, 地址: http://blog.donews.com/inclear/archive/2005/11/12/624363.aspx
      回復  更多評論    

    # re: Struts秘籍之第2段:第3.2式:使用Struts-EL 標簽 2006-12-01 11:17 笨笨猴

    鐵手兄,非常感謝。。。。

    好久沒有來你這里看了,但每次一來,總是會有所收獲。。。
      回復  更多評論    

    # re: Struts秘籍之第2段:第3.2式:使用Struts-EL 標簽 2009-05-20 16:04 學習

      回復  更多評論    
    主站蜘蛛池模板: 免费久久精品国产片香蕉| 亚洲精品无码国产片| 亚洲福利在线播放| 亚洲人成7777影视在线观看| 国产L精品国产亚洲区久久| 免费在线观看的网站| 最近中文字幕大全中文字幕免费| 亚欧乱色国产精品免费视频| 亚洲AV无码国产精品永久一区| 91亚洲性爱在线视频| 亚洲影院在线观看| 亚洲第一AV网站| 亚洲精品成人片在线观看精品字幕| 无码人妻AV免费一区二区三区 | 日韩国产欧美亚洲v片| 亚洲人成7777影视在线观看| 亚洲嫩草影院久久精品| 亚洲精品中文字幕乱码三区| 亚洲国产成人久久综合碰| 国产无遮挡吃胸膜奶免费看视频 | 婷婷久久久亚洲欧洲日产国码AV | 亚洲欧美日韩综合久久久久| 亚洲不卡中文字幕| 亚洲福利电影在线观看| 日韩电影免费在线观看视频| xxxx日本免费| 国产h肉在线视频免费观看| 中文字幕亚洲免费无线观看日本| 免费看搞黄视频网站| 337p日本欧洲亚洲大胆人人| 在线亚洲高清揄拍自拍一品区| 精品丝袜国产自在线拍亚洲| 中文字幕在线日亚洲9| 精品国产成人亚洲午夜福利| 国产日本亚洲一区二区三区| 亚洲乱妇老熟女爽到高潮的片| 一本色道久久88—综合亚洲精品| 亚洲字幕AV一区二区三区四区 | 日韩在线视频免费看| 国产精品免费一级在线观看| 亚洲AV网站在线观看|