EL表达式

EL表达式的作用:

   EL作用:

     jsp的核心语法:jsp表达式和jsp脚本。

     用EL布偶奥达是替换掉掉jsp表达式。

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

     语法:  ${变量或表达式}

  EL表达式语法:

          1)输出基本数据类型变量

                       1)从四个域获取

                                ${name}

                       2)指定域获取

                                ${pageScope.name}

                        域范围:paageScope/requestScope/sessionScope/applicationScope

          2)输出对象属性值

                       Student

          3)输出集合对象

                      List  和  Map

          4)EL表达式计算

JSP标签

       jsp标签的作用:替换jsp脚本

            1)判断流程(if  for循环)

            2)跳转页面(转发,重定向)

    jsp标签分类

                 1)内置标签(动作标签):不需要在jsp页面导入标签

                 2)jstl标签:需要在jsp页面导入标签

                 3)自定义标签:开发者自行定义,需要在jsp页面导入

         1)动作标签

                    转发标签: <jsp:forward>

                    参数标签:<jsp:param>

                    包含标签:<jsp:include>

                               原理:包含于被包含的页面先各自翻译成java源文件,然后再运行时合并在一起

                                            (先翻译在合并),动态合并

                        1)语法不同

                           静态包含语法:<%@include file="被包含的页面"%>

                           动态包含语法:<jsp:include page="被包含的页面"> 

                         2)参数传递不同

                             静态包含不能向被包含页面传递参数

                             动态包含可以向被包含的页面传递参数

                         3)原理不同

                             静态包含:先合并再翻译

                             动态包含:先翻译再合并

                     JSTL标签

                     JSTL(全名:java standard tag  libarary   - java标准标签库  )

                      核心标签库(c标签库)重点

                      国际化标签(fmt标签库)

                       EL函数库(fn函数库)

                       xml标签库(x标签库)不用

                       sql标签库(sql标签库)不用

                  使用jstl标签步骤

                         1)导入jstl支持的jar包(标签背后隐藏的java代码)

                                        注意:使用javaee5.0的项目自动导入jstl支持的jar包

                         2)使用taglib指令导入标签库

                                    <%@taglib uri="tld文件的uri名称" prefix="简写" %>

                 <%--导入标签库 (通常情况下导入标签库的写法)--%>
                 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

                         3)在jsp中使用标签

                         保存数据:

                <c:set></c:set>
              获取数据:
                <c:out value=""></c:out>
              单条件判断:
                <c:if test=""></c:if>
              多条件判断
                <c:choose></c:choose>
                <c:when test=""></c:when>
                <c:otherwise></c:otherwise>
              循环数据:
                <c:forEach></c:forEach>
                <c:forTokens items="" delims=""></c:forTokens>
              重定向:
                <c:redirect></c:redirect>
<%--set标签:保存数据(保存到域中)默认保存到page域--%>
<c:set var="name" value="rose" scope="request"></c:set>

<%
    String msg=null;
    pageContext.setAttribute("msg",msg);
%>
${requestScope.name }
<br>
<%--out标签:获取数据(从域中)
default:当value值为null时,使用默认值
escapeXml:是否对value值进行转义,false,不转义,true,转义(默认)
--%>
<c:out value="${msg}" default="<h3>标题3</h3>" escapeXml="false"></c:out>

<hr>

<%--if标签:单条件判断--%>
<c:if test="${!empty msg}">
    条件成立
</c:if>

<%--choose标签+when标签+otherwrise标签:多条件判断--%>
<c:set var="score" value="86"></c:set>
<c:choose>
    <c:when test="${ score>=90 && score<=100}">
        优秀
    </c:when>
    <c:when test="${ score>80 && score<90}">
        良好
    </c:when>
    <c:when test="${ score>=70 && score<80}">
        一般
    </c:when>
    <c:when test="${ score>=60 && score<70}">
        及格
    </c:when>
    <c:otherwise>
        不及格
    </c:otherwise>
</c:choose>

<%--forEach标签:循环--%>
<%
    //List
    List<Student> list=new ArrayList<Student>();
    list.add(new Student("rose",18));
    list.add(new Student("jack",28));
    list.add(new Student("lucy",38));
    //放到域中
    pageContext.setAttribute("list",list);

    //Map
    Map<String,Student> map=new HashMap<String,Student>();
    map.put("100",new Student("mark",20));
    map.put("101",new Student("maxwell",30));
    map.put("102",new Student("narci",40));
    //放到域中
    pageContext.setAttribute("map",map);
%>
<%--begin="" 从哪个元素开始遍历,默认从0开始
end=""   到那个元素截止,默认到最后一个元素
step=""   步长(每次加几),默认到1
items=""   需要遍历的数据(集合)
var=""   每个元素的名称
varStatus=""  当前正在遍历的元素的对象(状态对象(count属性:当前位置,从开始)
--%>

<c:forEach begin="0" end="2" step="1" items="${list}"
           var="Student" varStatus="vatStu">
    序号:${varStu.count} -姓名:${Student.name} -年龄:${Student.age}<br>
</c:forEach>

<c:forEach items="${map}" var="entry">
    ${entry.key} -姓名:${entry.value.name} -年龄:${entry.value.age}<br>
</c:forEach>

<%--frToken标签:循环特殊字符串--%>
<%
    String str="java-php-net-平面";
    pageContext.setAttribute("str",str);
%>
<c:forTokens items="${str}" delims="-" var="s">
    ${s }<br>
</c:forTokens>

<%--redrict:重定向--%>
<c:redirect url="http://www.baidu.com"></c:redirect>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值