一、概述
使用EL表达式可简化JSP中对象的引用,使代码更加规范,可读性与可维护性更好。
属性范围 | EL实例 | 说明 |
Page | ${pageScope.name} | 获取Page范围的名为name的属性 |
Request | ${requestScope.name} | 获取Request范围的名为name的属性 |
Session | ${sessionScope.name} | 获取Session范围的名为name的属性 |
Application | ${applicationScope.name} | 获取Application范围的名为name的属性 |
无指定范围 | ${name} | 获取以上所有范围的名为name的属性 |
二、运算符
<%@ page import="bean.Student" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <body> <!-- 空判断运算 --> <% session.setAttribute("java", 0); request.setAttribute("javascript", 1); %> ${empty sessionScope.java}<br/> ${empty javascript}<br/> ${empty null}<br/> <!-- 访问数据 --> <jsp:useBean class="bean.Student" id="stu" scope="session"/> <jsp:setProperty name="stu" property="id" value="30"/> <jsp:setProperty name="stu" property="name" value="Yao"/> <% int[] array = {0, 1, 2, 3}; session.setAttribute("array", array); %> ${stu.id}<br/> ${stu["name"]}<br/> ${array[1]}<br/> <!-- 算术运算符 --> <% session.setAttribute("x", 0); session.setAttribute("y", 1); %> ${x+y}<br/> ${x-y}<br/> ${x*y}<br/> ${x/y}<br/> ${x div y}<br/> ${x%y}<br/> ${x mod y}<br/> <!-- 关系运算符 --> ${x==y}<br/> ${x eq y}<br/> ${x!=y}<br/> ${x ne y}<br/> ${x > y}<br/> ${x gt y}<br/> ${x >= y}<br/> ${x ge y}<br/> ${x < y}<br/> ${x lt y}<br/> ${x <= y}<br/> ${x le y}<br/> <!-- 逻辑运算符 --> <% session.setAttribute("x", true); session.setAttribute("y", false); %> ${x && y}<br/> ${x and y}<br/> ${x || y}<br/> ${x or y}<br/> ${!x}<br/> ${not y}<br/> <!-- 条件运算符 --> ${x?x:y}<br/> </body> </html>
三、隐含对象
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <body> <!-- 使用pageContext获取内置对象及其属性 --> 请求:${pageContext.request}<br/> 协议:${pageContext.request.protocol}<br/> <!-- 使用param获取单个参数 --> <!-- 使用paramValues获取多个参数 --> <form action="index.jsp" method="post"> <input type="text" name="user" placeholder=""/><br/> <input type="checkbox" name="like" value="篮球" placeholder=""/>篮球 <input type="checkbox" name="like" value="足球" placeholder=""/>足球 <input type="checkbox" name="like" value="网球" placeholder=""/>网球 <input type="checkbox" name="like" value="棒球" placeholder=""/>棒球 <br/> <input type="submit" value="提交"><br/> </form> 用户:${param.user}<br/> 爱好:<!-- 参数不存在时返回空字符串 --> ${paramValues.like[0]} ${paramValues.like[1]} ${paramValues.like[2]} ${paramValues.like[3]} <br/> <!-- 使用header获取单个头值 --> <!-- 使用headerValues获取多个头值 --> 连接:${header.connection}<br/> 主机:${header["host"]}<br/> 代理:${header["user-agent"]}<br/> <!-- 使用cookie对象获取cookie --> <% Cookie testCookie = new Cookie("testCookie", "cookieContent"); response.addCookie(testCookie); %> Cookie:${cookie.testCookie.value}<br/> <!-- 使用initParam获取初始化参数 --> <!-- <context-param> <param-name>project</param-name> <param-value>java web</param-value> </context-param> <context-param> <param-name>language</param-name> <param-value>java</param-value> </context-param> --> 项目:${initParam.project}<br/> 语言:${initParam.language}<br/> </body> </html>
四、禁用
<!-- index.jsp --> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!-- 禁用方法1 --> <%@ page isELIgnored="true" %> <html> <body> <!-- 禁用方法2 --> <!-- 显示反斜杠后的全部内容而非EL表达式的结果 --> \${pageContext.session.id} </body> </html> <!-- web.xml --> <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 禁用方法3 --> <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> </jsp-property-group> </jsp-config> </web-app>
原文地址:https://www.cnblogs.com/arseneyao/p/9371650.html
时间: 2024-10-11 15:26:35