JavaEE(5)—EL表达式与JSTL

EL

表达式语言(EL),使用它可以轻松编写免脚本的JSP页面

1.使用

  • 语法:EL表达式以${开头,并以}结尾
${expression}
  • 关键字:
and eq gt true instanceof or ne le false empty not It ge null div mod
  • []和.运算符:EL表达式可以返回任意类型的值。如果EL表达式的结果是一个带有属性的对象,则可以用[]或者.运算符来访问该属性。"[]"和 ".“运算符类似;[]是比较规范的形式,”."运算符更快捷
${object["propertyName"]}
${object.propertyName}

注意:如果要访问accept-language标题等propertyName不是有效java变量名,则只能用 "[]"运算符。

EL隐式对象

对象描述
pageContext当前JSP的pageContext
initParam包含所有环境初始化参数,并用参数名作为key的Map
param包含所有请求参数,并且参数名作为key的Map,返回第一个参数
param Values同上,但返回一个字符串数组
header包含请求标题,并用标题名作为key的Map
headerValues
cookie包含了当前请求对象中所有Cookie对象的Map
applicationScope包含了ServletContext对象中所有属性的Map
sessionScope包含了HttpSession对象中所有属性的Map
requestScope包含了HttpServletRequest对象中的所有属性
pageScope包含了全页面范围的所有属性的Map

JSTL

  • 首先要下载JSTL对应的jar包并导入项目

一般行为

  • out标签
//第一种形式
<c:out value="${sessionScope.what}"/>

//第二种形式
<c:out value="${cookie.cookie.value}">
        <%--body context--%>
</c:out>

  • set标签
//赋值
<c:set var="uname" value="wintershii"/>
<c:set target="${employee}" property="name" value="张硕"/>
  • remove标签
<c:remove var="uname"/>

条件行为

  • if标签
//只有if
<c:set var="pwd" value="990708"/>
<c:if test="${pwd == '990708'}">
    You Log In Successfully
</c:if>

//if,else
<c:if test="${cookie.cookie.value != 'shi'}" var="loginId"/>
${(loginId)? "You Log In Successfully" : "Login failed"}
  • choose,when和otherwise标签
<form action="jstl.jsp" method="post">
    信息:<input type="text" name="data" value="">
    <input type="submit" value="提交">
</form>


<c:choose>
        <c:when test="${param.data == '1'}">
            你输入了1
        </c:when>
        <c:when test="${param.data == '2'}">
            你输入了2
        </c:when>
        <c:otherwise>
            哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
        </c:otherwise>
    </c:choose>

遍历行为

  • forEach标签
<table>
    <tr>
        <td>书名</td>
        <td>作者</td>
        <td>出版时间</td>
    </tr>
    <c:forEach items="${requestScope.books}" var="book">
        <tr>
            <td>${book.name}</td>
            <td>${book.author}</td>
            <td>${book.date}</td>
        </tr>
    </c:forEach>
</table>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值