EL表达式 与 JSTL标签库

EL表达式html

什么是eljava

jsp内置的表达式语言数组

el表达式的做用服务器

代替脚本session

el如何获取数据app

一、获取域中的数据jsp

简单数据:${域中的key值}函数

注意:若是多个域中的key值同样 那么取出的顺序?post

从范围小的开始查找,查找到之后就返回url

若是没有查询到对应的key 返回""(空字符串)

例如:

<%

pageContext.setAttribute("num", 5);

request.setAttribute("num", 1);

session.setAttribute("num", 0);

application.setAttribute("num", 2);

 %>

<p>${ requestScope.num}</p>

 <p>${ sessionScope.num}</p>

<p>${ applicationScope.num}</p>

<p>${ num}</p>

复杂数据:

数组:${域中的key值 [ index ] }

list:${域中的key值 [ index ] }

map:

通常数据:${域中的key值.map中的key}

若是map的是特殊(数字等):${域中的key值 [ " key " ] }

javaBean导航:

javaBean:咱们编写的一个普通java类:相似:User,Person……

javaBean规范:

一、必须是一个共有的类

二、提供私有字段

三、必须提供私有字段公共的get、set方法(boolean :is)

四、必须提供无参构造

五、通常来讲须要实现Serializable接口(序列化)

用法:

${域中的key值.javabean属性}

javabean属性:就将get或set方法去掉头(set,get) 而后将首字母小写

二、el表达式的内置对象:pageContext

${ pageContext.request.contextPath}   <!--获取项目的根路径-->

${pageContext.request.requestURI}   <!-- 请求的url -->

${pageContext.request.queryString}   <!-- 获取查询参数-->

${pageContext.request.method}   <!-- 请求方式-->

${pageContext.request.protocol}   <!-- http协议-->

${pageContext.request.serverName}   <!-- 服务器名字-->

三、el中的保留字段

 

and eq  gt div
or ne  le mod
no lt  ge true
instanceof empty  null false

四、el执行运算

算数:

+:只能进行加法,不能实现拼接

/:div        例如:${ 10 / 2 }  等同于  ${ 10 div 2 }

%:mod    例如:${ 10 % 2 }  等同于  ${ 10 mod 2 }

关系:

> 或者 gt        例如:${8>9}   或者   {8 gt 9 }

>= 或者 ge     例如:${45>=9}   或者   ${45 ge 9 }

< 或者 lt         例如:${4<9}   或者   ${4 lt 9 }

<= 或者 le      例如:${9<=8}   或者   ${9 le 8 }

== 或者 eq     例如:${4==4}   或者   ${4 eq 4 }

!= 或者 ne      例如:${4!=3}   或者   ${4 ne 3 }

逻辑:

&& 或者 and    例如:${false && false}   或者   ${false and false }

|| 或者 or         例如:${true || false}   或者   ${true or false }

! 或者 not        例如:${!true}(至关于${false})   或者   {not true }

empty:判断容器的长度是否为0、判断对象是否为空

例如:

 

 

JSTL 标签库

 做用:用来代替脚本

导入格式:

taglib:导入标签库

<%@ taglib prefix="",uri="" %>

prefix:前缀(一个命名)

uri:标签路径

JSTL标签库的分类

核心标签:Core

if:条件判断

属性:

test:条件表达式(${})

var:接收条件表达式的结果

scope:var变量的做用范围

例如:

<c:if test="${ 1==1}" var="result" >

${result}

1 等于 1

</c:if>

<c:choose>(与switch的功能相似)

属性:

choose:switch

when:case

otherwise:defalut

例如:

<c:choose>

<c:when test="${3>4}">

3>4

</c:when>

<c:when test="${3<4}">

3<4

</c:when>

<c:otherwise>

3 = 4

</c:otherwise>

</c:choose>

<c:foreach>:循环

属性:

begin:开始

end:结束

step:递增值

items:要遍历的对象

var:遍历结果

varStatus:循环状态

对象:

index:以begin的值为开始下标

count:当前执行的次数

first:判断是否为第一个变量,是(返回true),否(返回false)

last:判断是否为最后一个变量,是(返回true),否(返回false)

例子:

<c:forEach begin="5" end="10" step="1" var="i" varStatus="vs">

${vs.index}<br>

${vs.count}<br>

${vs.first}<br>

${vs.last}<br>

变量值:  ${i}<br>

</c:forEach>

<c:out>:<%=%> 输出

<c:set>:向域中设置值

属性:

value:值

var:key

scope:域

例如:

<c:set value="abc" var="msg" scope="request"></c:set>

格式化标签:fmt

例如:

<c:set var="now" value="<%=new Date()%>" scope="request"></c:set>

<p> <fmt:formatDate value="${now}" type="both"></fmt:formatDate></p>

函数标签:fn

例如:

<c:set value="abc" var="msg" scope="request" ></c:set>

${fn:toUpperCase(msg)}

${fn:contains("aaabc","aaa" )}

转载于:https://www.cnblogs.com/wzhsc/p/10331891.html