[Java Web] EL

Posted arseneyao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java Web] EL相关的知识,希望对你有一定的参考价值。

一、概述

使用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>
View Code

 

三、隐含对象

技术分享图片
<%@ 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]} &nbsp;
${paramValues.like[1]} &nbsp;
${paramValues.like[2]} &nbsp;
${paramValues.like[3]} &nbsp;
<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>
View Code

 

四、禁用

技术分享图片
<!-- 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>
View Code

 

以上是关于[Java Web] EL的主要内容,如果未能解决你的问题,请参考以下文章

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

jsp&el&jstl-01

Java Web-EL表达式 in JSP