java基础(二十五):jsp基础(二:EL+JSTL)

1.EL表达式
2.JSTL:标签函数库

1.EL表达式:为了使jsp中脚本片段尽量的少,页面看着尽量干净

           el写法:${表达式};

           功能:

           (1).获取数据

                      ^1.获取常量:${常量}

                      ^2.获取变量:${变量},el会调用pageContext里的findAttribute()在四大作用域里查找,找到输出,找不到不输出

                      ^3.获取集合、数组、map、javaBean等:${list[0]},${map[name]},${map["name"]}

                                 注:中括号里有无双引号意义不同,无双引号表示是一个变量,有双引号表示是常量,可以直接使用

           (2).进行运算

扫描二维码关注公众号,回复: 4954783 查看本文章

                      ^1.算术运算:若有非数值的参与算术运算,会将非数值转成数值后再运算

                      ^2.比较运算:>:gt    <:lt    >=:ge  <=:le  !=:ne  ==:eq

                      ^3.逻辑运算:&&    ||    !

                      ^4.三元运算:${10>9?"yes":"no"}

                      ^5.空值运算:${empty list}:判断list是否为null

           (3).获取常用开发对象

                      pageContent:通过pageContent可以获取九大隐式对象(pageContent不是pageContext,pageContext是隐式对象之一,pageContent是el表达式里的一个常用开发对象)

                      pageScope:page域中属性组成的map

                      requestScope:request域中属性组成的map

                      sessionScope:session域中属性组成的map

                      applicationScope:application域中属性组成的map

                      param:所以请求参数组成的map<String,String>

                      paramValues:所以请求参数组成的map<String,String[]>

                      initParam:所有web的初始化参数组成的map

                      header:所有请求头组成的map<String,String>

                      headerValues:所有请求头组成的map<String,String[]>

                      cookie:所有cookie组成的map

           (4).调用方法

                      ^1.写一个类包含el要调用的方法,该方法必须是静态

                      ^2.写一个tld文件描述要调用的方法

                      ^3.通过taglib指令引入tld文件,从而调用方法

2.JSTL:标签函数库,一般与el表达式配合取代jsp中的脚本片段

           (1).标签库的种类

                      核心标签库:c

                      国际化标签库:fmt

                      数据库标签库:sql

                      xml标签库:xml

                      el标签库:el

           (2).核心标签库的常用方法:

                      ^1.引入标签库

                                 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

                      ^2.输出:

                                 <c:out value="${addr}" default="上海" escapeXml="true"/>

                                 注:escapeXml:是否转译

                      ^3.设置或修改域中的属性值:

                                 <c:set var="name" value="aaa"/>

                                 <c:set target="${map}" property="1" value="aaa"/>

                      ^4.删除属性值

                                 <c:remove var="name" scope="page"/>

                      ^5.捕捉异常

                                 <c:catch var="e"><% int i = 1/0; %></c:catch>

                                 ${e.message}

                      ^6.if条件判断

                                 <c:if test="${age}>20">XXX</c:if>

                      ^7.choose,when,otherwise条件判断

                                 <c:choose>

                                            <c:when test="${age}>20">XXX</c:when>

                                            <c:otherwise>XXX</c:otherwise>

                                 </c:choose>

                      ^8.循环遍历

                                 <c:forEach items="${city}" var="c" >${c}</c:forEach>

                      ^9.拆分字符串

                                 <c:forTokens items="www.baidu.com" var="str" delims=".">${str}</c:forTokens>

                      ^10.设置参数

                                 <c:param name="username" value="zhang"/>

                      ^11.import

                                 <c:import url="/index.jsp" var="p" scope="page"/>

                      ^12.redirect重定向

                                 <c:redirect url="/index.jsp" content="${pageContent.request.contextPath}"/>

                      ^13.url

                                 <c:url value="/index.jsp" content="${pageContent.request.contextPath}"/>

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/86150253