Jsp中的EL,JSTL表达式(常用的)

EL表达式
使用点形式的el表达式 ${域对象名.存储在域对象中的变量名.此变量名中其他属性的名字.此变量名中其他属性的名字等}}

${requestScope.student}<br>
${requestScope.student.name}<br>
${requestScope.student.address}<br>

使用[]形式的el表达式 ${域对象名[‘存储在域对象中的变量名’][‘此变量名中其他属性的名字’][‘此变量名中其他属性的名字’][‘等’]}}
[]形式的el表达式的优势:
1,[]中为变量时直接写变量名,如果是常量必须使用""或者’’
2,[]中的变量后者常量名中可以含有特殊字符,但是点形式的el表达式不可以
3,使用[]形式的el表单时可以读取数组中具体索引位置的值也可以是java.util.Map类,点形式的不可以

<%
    Student student = (Student) request.getAttribute("student");
    String studentName = student.getName();
    String string = "sssss";
%>
${requestScope['student']}<br>
${requestScope['student']['name']}<br>
${requestScope['hobbies'][1]}<br>
${pageScope[string]}<br>
${requestScope['my-naem']}
------el表达式中也可以使用关系 逻辑运算符----------------
${3>2} -------- ${3>2 || 5>9}<br>
---empty关键字:当判断的表达式存在(有值不是null)时返回false,否者返回true-
${empty requestScope['my-name']}

EL表达式中的3中隐式对象
1,作用域访问对象(表达式中的域对象):pageScope, requestScope, sessionScope, applicationScope
如果在使用表达式没有指定域对象时将会从小到大,依次在域对象中查找所需
2,参数访问对象(获取表单数据,超链接,地址栏)
request.getParameter()获取表单中的单个数据 requestgetParameterValues()获取数组数据
${param.input标签中的name的值} ${paramValues.input标签中的name的值}[index]}
3,JSP隐式对象:pageContext
通过这个对象可以间接获取JSP中其他对象,还可以级联形式获取具体内置对象中的方法
如:
JSP中获取内置对象的形式 el表达式中获取方式
pageContext.getSession(); ${pageContext.session}
pageContext.getResponse() ${pageContext.response}}
pageContext.getRequest().方法名 ${pageContext.request.方法名}}

--------------------------------------------------------------------------------------

JSTL:比EL表达式更强大
所需jar:jstl.jar包 standard.jar包
添加:<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%其中的prefix的值将会在标签中使用
核心标签库:
普通标签

<c:set>
1,给变量赋值
<c:set var="" value="" scope=""/>:向某个作用域(request,respongs,session,page)中添加变量和值,如果域中已经存在这个变量那么这个变量的值将会被覆盖
2,给对象赋值中的属性赋值(对象必须存在于对应的域中)
<c:set target=“作用域.作用域中的类对象名” propert=“类对象中的属性名” value=“赋值的值”/>

<c:out>:用于输出相当于${}
<c:out value=“可以直接是值也可以是EL表达式” default=“当value值不存在时将使用这个默认值” escapeXml=“true|false”/>
<c:out value=‘百度’ escapeXml=“false”></c:out>
escapeXml为false时这在jsp页面中将会显示这个完整的标签,并且后面面还将显示之间的信息,点击的话还可以进行跳转
escapeXml为true时这在jsp页面中将会显示这个完整的标签,并且后面面还将显示之间的信息,但是不能跳转

<c:remove var=“变量名称” scope=“4个作用域中的某个”/>

条件标签

单选择标签
<c:if test="${表达式}" scope=“将var值存放于那个具体域中(4个中的某个),取值时就必须指定具体的域名”
var=“用于接收test中判断表单式的返回值”>
test的结果为true时将会显示,为false将不会显示 <c:if/>标签相当于if判断条件
</c:if>
多选择标签

相当于switch语句
<c:choose>
一个c:when就相当于一个if判断条件
test=" 判 断 表 达 式 " 中 的 " " 后 面 或 者 " " 里 面 不 是 {判断表达式}"中的""后面或者""里面不是 """""{}中不要有空格出现不然得不到想要的结果
<c:when test="${判断表达式}">
显示的内容
</c:when>
所有的条件都不满足时将会执行
<c:otherwise>
显示的内容
</c:otherwise>
</c:choose>

迭代标签(循环标签)
相当于for循环
<c:forEach begin=“循环开始的值” end=“循环结束的值,但是可以取到” step=“步长” varStatus=“varstatus”>
${varstatus.index}用于获取当前循环是第几次,是一个int值
输出的内容:afasfdasf
</c:forEach>

相当于增强for循环
items=" " 中 的 " " 后 面 或 者 " " 里 面 不 是 {}"中的""后面或者""里面不是 """""{}中不要有空格出现不然得不到想要的结果
<c:forEach var=“用于接收的变量名getvalue” items="${某个域.集合或者数组名如requestScope.arrays}">
${用于接收的变量名getvalue}
如果集合中存放的是类那么取值类属性时和EL表达式的取法一样
</c:forEach>
JSP中EL表达式的详解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值