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>

猜你喜欢

转载自blog.csdn.net/wintershii/article/details/83049878
今日推荐