国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

jsp標簽&EL表達式

2019-11-14 15:36:04
字體:
來源:轉載
供稿:網友

1.jsp標簽和el表達式
    (1)什么是jsp標簽?
        jsp標簽用來替換jsp文件中的java代碼,容器遇到jsp標簽之后,會依據標簽找到標簽類然后執行。
        注: 因為直接在jsp當中寫java代碼,不利于jsp文件的維護(比如,將包含有java代碼的jsp交給美工去修改就很不方便),所以,
              sun才制訂了jsp標簽技術規范。
            使用jsp標簽技術,有兩大優點:
            a.jsp文件維護方便。
            b.方便代碼的復用。
    (2)什么是el表達式?
        是一套簡單的運算規則,用于給jsp標簽的屬性賦值,也可以直接輸出。
    (3)el表達式的使用
        1)訪問bean的屬性  (a1.jsp)
            a.方式一
            ${user.name} 依次從pageContext,request,session,application中查找綁訂名稱為"user"的對象,找到該對象之后,
            會調用該對象的"getName"方法,最后輸出該方法的運行結果。
                注:
                        a1. el表達式會將null轉換成 ""輸出。
                        a2. 如果依據綁訂名找不到該對象,會輸出""。
                        a3.可以使用pageScope,requestScope,sessionScope,applicationScope來指定查找范圍。           
            b.方式二
                ${user["name"]}   
                注:
                        b1. []里面可以使用綁訂名。
                        b2. []里面可以使用從0開始的下標,用來訪問數組中的某個元素。               
        2)做一些簡單的運算,運算結果可以用來給jsp的標簽屬性賦值,也可以直接輸出。(a2.jsp)
        a.算術運算+,-,*,/,%
            注: + 只能求和,不能夠連接字符串。
        b.關系運算 >,>=,<,<=,==,!=
        c.邏輯運算&&,||,!
        d.empty運算
            empty用來判斷集合是否為空,或者是否是一個空字符串。
       3)讀取請求參數值 (a3.jsp)
        ${param.username}等價于request.getParameter("username");
        ${paramValues.city}等價于request.getParameterValues("city");                                        
  (4)jstl標簽的使用
        1)jstl是什么?     (java standard tag lib)
            apache公司開發的一套jsp標簽,后來捐獻給了sun,sun將其命名為jstl。
        2)如何使用?
            step1,將jstl相關的jar文件拷貝到WEB-INF/lib下。
            注:如果使用的是javaee5.0或者以上版本,一般不用拷貝了。有些tomcat的版本不帶有這個jstl的jar文件,需要拷貝。
            step2,使用taglib指令引入要使用的標簽。
                <%@taglib uri="http://java.sun.com/jsp/jstl/core" PRefix="c"%>
                uri:指定命名空間(namespace)。
                prefix:命名空間的前綴。

            注:uri在jstl-1.2.jar包下的META-INF下的c.tld中

            <short-name>c</short-name>
            <uri>
http://java.sun.com/jsp/jstl/core</uri>

        3)jstl中的幾個核心標簽
           a.if標簽  (c1.jsp)
             <c:if test="" var="" scope="">標簽體</c:if>   
             當test屬性值為true,會執行標簽體。
            test屬性可以使用el表達式來賦值
            var屬性:指定綁訂名。
            scope屬性:指定綁訂范圍,可以是"page","request","session","application"。

          性別:<c:if test="${user.gender=='m'}">男</c:if><br/>
         <c:if test="${user.gender=='f'}">女</c:if><br/>
        
          性別:<c:if test="${user.gender=='m'}">男</c:if><br/>
         <c:if test="${user.gender!='m'}">女</c:if><br/>
        
          性別:<c:if test="${user.gender=='m'}" var="flag" scope="page">男</c:if><br/>
         <c:if test="${!flag}">女</c:if><br/>


            b.choose標簽 (c2.jsp)(相當于java中的if…else if…)
                <c:choose>
                    <c:when test=""></c:when>
                    <c:otherwise></c:otherwise>
                </c:choose>
                when可以出現1次或者多次,當test屬性值為true時,執行標簽體的內容。otherwise可以出現0次或者1次。

        <c:choose>
             <c:when test="${user.gender=='m'}">男</c:when>
             <c:when test="${user.gender=='f'}">女</c:when>
             <c:otherwise>保密</c:otherwise>
         </c:choose>


           c.forEach標簽 (c3.jsp)
                用來遍歷集合或者數組
                <c:forEach items="" var="" varStatus=""></c:forEach>
                items屬性: 指定要遍歷的集合或者數組,可以使用el表達式。
                var屬性:指定綁訂名,綁訂范圍是pageContext(每一次從集合或者數組中取一個元素綁訂到pageContext上)。
                varStatus屬性:指定綁訂名,綁訂值是一個封裝了當前遍歷狀態的一個對象(該對象提供了一些方法來獲得當前遍歷的狀態)。
                    getIndex(): 獲得當前正在被遍歷的元素的下標(從0開始)。
                    getCount(): 獲得當前是第幾次遍歷。

          <c:forEach items="${users}" var="user" varStatus="s">
                 <tr class="row${s.index%2+1 }">
                     <td>${user.name }</td>
                     <td>${user.age }</td>
                     <td>${user.gender }</td>
                     <td>${s.index }</td>
                     <td>${s.count }</td>
                 </tr>
             </c:forEach>

       
        (5)自定義標簽(簡單標簽技術) (web10-2)
            step1,寫一個java類,繼承SimpleTagSupport類。 (HelloTag.java)
            step2,override doTag方法,在方法里,編寫相應的處理邏輯。
            step3,描述標簽(.tld文件)(mytag.tld)

           <body-content>有三個值

            <body-content>empty</body-content>

            empty:該標簽沒有標簽體。

     scriptless:該標簽可以有標簽體,但是標簽體的內容不能夠包含有java代碼<%  %>,<%=  %>,<%!   %>。

     JSP:該標簽可以有標簽體,并且標簽體的內容可以含有java代碼。但是。只有復雜標簽技術支持該值。簡單標簽技術不支持JSP。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新郑市| 吉木乃县| 昌乐县| 天气| 高州市| 平阳县| 珲春市| 嘉善县| 从江县| 法库县| 通山县| 瓮安县| 正蓝旗| 浦江县| 平度市| 灵山县| 莎车县| 灵丘县| 铁力市| 新闻| 达拉特旗| 卓资县| 武川县| 阿城市| 玛多县| 增城市| 荥阳市| 财经| 大余县| 克什克腾旗| 犍为县| 和林格尔县| 小金县| 全州县| 云南省| 金堂县| 巫山县| 都江堰市| 清水河县| 七台河市| 界首市|