自訂JSTL函數

來源:互聯網
上載者:User

一、JSTL標籤的使用首先,讓我們先來瞭解一下JSTL標籤的使用。(1)標籤庫的配置將jstl.jar和standard.jar拷貝到WEB-INF/lib下(如果使用el運算式,不用拷貝這兩個jar)注意:JSTL只能運行在支援JSP1.2和Servlet2.3規範的容器上,如tomcat 4.x。(2)標籤庫的使用採用taglib指令引入,如:<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>二、JSTL的優點為什麼使用JSTL,JSTL又有哪些優點?(1)在應用程式伺服器之間提供了一致的介面,最大程式地提高了WEB應用在各應用伺服器之間的移植。(2)簡化了JSP和WEB應用程式的開發。三、自訂標籤庫許多(web?)開源架構都提供了大量的標籤庫(taglib)。但面對各種各樣、永無止境的需求,實際應用中總會出現我們需要、但暫時無法找到或者沒有提供的一系欄標籤,由此,自訂標籤和函數應運而生。對於自訂標籤,《JSP2的自訂標籤》,以供參考。自訂標籤庫是一種非常優秀的表現層組件技術。通過使用自訂標籤庫,可以在簡單的標籤中封裝複雜的功能。當我們在JSP頁面使用一個簡單的標籤時,底層實際上由標籤處理類提供支援,從而可以使用簡單的標籤來封裝複雜的功能,從而使團隊更好地協作開發(能讓美工人員更好地參與JSP頁面的開發)。四、自訂函數庫自訂函數,簡單的講,其實就是我們寫的一些類的方法操作,需要在頁面中調用。下面以OA中出現的自訂JSTL函數為例。OA中在兩處用到了自訂JSTL函數,一處是下面的例子,需要在頁面中進行許可權的即時認證,一處是結合Freemarker和JSTL函數,動態顯示表單。業務介紹:在JSP頁面上,調用JSTL函數做即時認證,只有通過認證之後,才顯示相應的(功能)按鈕/菜單/輸入框等。1.定義函數類(方法為public static)[java]  /**  * JSTL函數,主要功能是可以完成許可權的即時認證  * @author Administrator  *  */  public class SecurityFunctions {            private static AclManager aclManager;            public static boolean hasPermission(int userId,String resourceSn,int permission){                    return aclManager.hasPermissionByResourceSn(userId, resourceSn, permission);      }        //這個方法不能定義為static,因為這將導致spring無法注入      public void setAclManager(AclManager aclManager) {          SecurityFunctions.aclManager = aclManager;      }  }  2.定義tld檔案:my.tld,並放到WEB-INF下[html]  <?xml version="1.0" encoding="UTF-8" ?>    <taglib 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-jsptaglibrary_2_0.xsd"    version="2.0">          <tlib-version>1.0</tlib-version>    <short-name>my</short-name>    <uri>http://www.bjsxt.com/oa/functions</uri>        <function>      <name>hasPermission</name>      <function-class>com.bjsxt.oa.web.SecurityFunctions</function-class>      <function-signature>boolean hasPermission(int, java.lang.String,int)</function-signature>    </function>  </taglib>  3.修改web.xml檔案,添加:[html]  <jsp-config>      <taglib>          <taglib-uri>http://www.bjsxt.com/oa/functions</taglib-uri>          <taglib-location>/WEB-INF/my.tld</taglib-location>      </taglib>  </jsp-config>  4.JSP頁面引入[html] www.2cto.com<%@ taglib prefix="my"  uri="http://www.bjsxt.com/oa/functions" %>   注意:uri在web.xml和jsp頁面引入需要一致;web.xml中的uri可以與location一致,也可以與tld檔案中的uri一致,一般三者的uri一致5.JSP頁面使用簡單樣本:[html] ${my:testJstlFunction('teststring')}  上述JSTL函數使用樣本:[html]  ssion(login.id,'person',3) }">      <a href="#" onclick="del('person.do?method=del&id=${person.id }');">刪除</a>  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.