EL表达式的用法
Posted listener-wy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式的用法相关的知识,希望对你有一定的参考价值。
EL表达式必须依赖于JSP才能生存下去
作用:减少<%%>(java代码)在页面上的显示,利于代码的维护
EL的基本语法:
往浏览器中输出内容
${1}
${“11”}
${‘111’}
算术运算符
${4+1}
${4-1}
${4*1}
${4/1}
注意:EL表达式中的+号没有拼接作用
<%=1+2+”3”%>
${1+2+”3”}
<%=1+2+”a”%>
${1+2+”a”}
关系运算符
${1>8}
逻辑运算符
${1==1 && 1<3}
//逻辑运算符的特殊写法
${true && false} -- ${true and false}
${true || false} -- ${true or false}
${!true} -- ${not true}
empty关键字:判断是否为null
${empty “”}<br>
${empty null}<br>
eq关键字
${“aa” eq “aa”}
EL表达式的取值问题
EL表达式只能从四大作用域中取数据(pageContext,requset,session,application),目前只讲requset
<%
int a = 100;
%>
${a/2}
取值不到,因为EL表达式只能从JSP的四大作用域当中获取变量
<%
int a = 100;
request.setAttribute(“wy”,a);
%>
${wy/2}
注意:EL表达式不能调用方法
JSTL核心标签库
使用步骤:
1.在页面的顶部导入标签库
taglib::标签库
uri:链接
提示:URL与RUI的区别
如:
URL: http://zhidao.baidu.com/question/68016373.html
RUI: /question/68016373.html
prefix:前缀,一般使用c
2.在页面上使用c标签
<c:out value=””></c:out> //输出,可以防止JS代码执行
等同于 ${“aaa”}
例:
<c:out value=”<script>alert(‘攻击脚本’);</script>”></c:out>
${“<script>alert(‘攻击脚本’);</script>”}
<c:set var=”” value=”” scope=””><c:set> //在JSP页面上定义变量
例:
<c:set var=”name” value=”李四” scope=”page”><c:set>
等同于 pageContext.setAttribute(“name”,”李四”);
<c:if test=””></c:if> //if逻辑判断
例:
<c:set var=”sex” value=”男”></c:set>
<c:if test=”${sex == ‘男’}”>
男人
</c:if>
<c:if test=”${sex eq ‘女’}”>
女人
</c:if>
注意: c:if 标签没有else标签
<c:choose></c:choose> //switch
<c:when test=””></c:when> //case
<c:otherwise></c:otherwise> //default
例:
<c:set var=”sex” value=”男”></c:set>
<c:when test=”${sex == ‘男’}”>
男人
</c:when>
<c:when test=”${sex eq ‘女’}”>
女人
</c:when>
<c:otherwise”>
妖
</c:otherwise>
<c:forEach var=”” items=”” varStatus=””></c:forEach>
var:数据组当中的每个元素
items:数组的名称(必须使用EL表达式)
varStatus:数组的信息 如:varStatus = vs
vs.index 循环的索引
vs.count 循环的次数
vs.first 是否是第一个
vs.last 是否是最后一个
例:
<%
String [] arr = {“男人”,”女人”,”妖怪”};
pageContext.setAttribute(“arr”,arr);
%>
<c:forEach var=”e” items=”${arr}” varStatus=”vs”>
${e}--${vs.index}--${vs.count}--${vs.first}--${vs.last}
</c:forEach>
注意:JSP页面中表单单行变色的问题
<c:forEach items="${list}" var="u" varStatus="vs">
<tr bgcolor="${vs.count%2 == 0 ? "red":"blue"}">
<td>${u.id}</td>
<td>${u.name}</td>
</tr>
</c:forEach>
以上是关于EL表达式的用法的主要内容,如果未能解决你的问题,请参考以下文章