(十三)EL表达式

1  EL 表达式替代 jsp 表达式

 作用:向浏览器输出域对象中的变量或表达式计算的结果

2   EL11个内置对象

    pageContext                                          -----  ${pageContext.request.contextPath } 

    pageScope

    requestScope

    sessionScope

    applicationScope

    param                                                    ------param返回所有参数Map集合    {param['name']}

    paramValues                                         -----   ${paramValues['name'][0] }

    header                                                 --------${header['host'] }

    headerValues                                      --------${headerValues['host'][0] }

    cookie                                                ---------${cookie['JSESSIONID'].value }

    initParam                                          --------- ${initParam['AAA'] }


3

       null或空字符串:${empty name}  
4

Jsp标签分类

1jsp内置标签(动作标签): 使用的时候不需要导入标签库

       <jsp:forward page="/index.jsp">
        <jsp:param value="eric" name="name"/>
        <jsp:param value="jacky" name="name"/>      

      </jsp:forward>

  

     <jsp:include page="/common/header.jsp">
          <jsp:param value="eric" name="name"/>
     </jsp:include> 

        静态包含(标签包含): 先合并再翻译。不能携带参数

        动态包含(指令包含): 先翻译编译再合并。携带参数

     <jsp:useBean id="s" class="gz.itcast.a_tag.Student"></jsp:useBean>
     <jsp:setProperty name="s" property="name" value="eric"/>
     <jsp:getProperty name="s" property="name" />

2jstl标签(标准标签): java standard tag libarary java使用的时候都需要导入标签库

      <c:set var="name" value="jacky" scope="request"/> 默认保存到page域

     <c:out value="${name}" default="<h3>标题3</h3>" escapeXml="false"></c:out>
        可以保持原样输出
     <c:if test="${10>8}">
            成立

      </c:if>

      <c:choose>
             <c:when test="${!empty sessionScope.user}">
                 欢迎
             </c:when>
             <c:otherwise>
               未登录       
             </c:otherwise>
       </c:choose>
      <c:forEach items="${list}" var="student" varStatus="varSta">
          
       </c:forEach>
      <c:forTokens items="${str}" delims="-" var="s">
                  ${s }

       </c:forTokens>

       <c:redirect url="/index.jsp"></c:redirect>

3)自定义标签:使用的时候都需要导入标签库

 

5 自定义标签的生命周期

1)构造方法: 构造标签器对象

2void setJspContext(JspContext pc)     传入PageContext对象。可以使用getJspContext()方法获取PageContext 对象。

3void setParent(JspTag parent)        传入父标签对象。如果没有父标签,则不调用次方法。

       使用getParent()方法获取父标签

4void setJspBody(JspFragment jspBody)   传入标签体内容。如果没有标签体,则不调用次方法。

         使用getJspBody()获取标签体内容。标签体内容封装到 JspFragment

5void doTag()                      调用标签时执行方法。我们的业务逻辑就写在这个方法 中。可以调用      getJspContext(),  getParent(),getJspBody();


6

       <body-content>scriptless</body-content>

 

    JSP: 表示标签体内容可以支持和输出jsp表达式内容。(注意:这个配置只能在传统标签中使用)

    scriptless: 标签体内容不支持jsp表达式内容。

    empty:  标签体内容是空的。

    tagdependent: 标签体内容支持jsp表达式。把jsp表达式当前字符串处理


7 自定义标签的开发步骤

     1 自定义类继承simpleTagSupport

     2 重写doTag

     3  类中定义属性(有的话)

     4 建立tld文件

     5 tld中定义该标签,及属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值