【JSP】EL表达式语言
EL简介
基本类型
保留字
运算符
类型 | 运算符 | 备注 |
算术运算 | + - * / % | 注意除法是浮点数除法,7/5=1.2 |
逻辑运算 | && || ! | |
关系运算 | > >= < <= == != | 可以对字符串使用,按照字典顺序排列比较 |
三元运算 | ${ condition ? expA : expB } | 例如 ${sessionScope.user==null? "你没有登录" : "你已经登录"} |
空判断 | empty object |
如果object是null,则直接返回true。
否则接着判断对象是Map , List, 数租 ,String如果是空的(size=0),则返回true。
他是一个前缀运算符。
|
分界符 | ( ) | 控制运算符优先级 |
属性获取运算符 | [ ] 或者 . |
用于获取对象的属性。 obj.pro 等价于 obj["pro"]。如果obj和pro之一为null,则返回null。 后者点运算符使用的更加普遍,但是如果属性pro不是合法的Java标识符,则必须使用[ ]来取属性。 |
EL中的对象和他们的属性
在LE中有2个运算符用来取对象属性: [ ] 和 .
一般情况下,后者使用的较多。但是如果属性包含非Java标志符,如 “-” ,则必须使用 [ ] 来取属性。
EL的对象主要是: JavaBean对象,java.util.Map , java.util.List , Java数字,Java字符串 和 EL隐式对象。属性运算符用来取他们的属性。
属性运算符可以连用: 如user.address.postCode 、 pageContext.request["method"]
JavaBean
要用EL取的JavaBean的属性,首先这个属性必须满足JavaBean的规范。我们可以将一个JavaBean对象存放在pageScope,requestScope,sessionScope或者applicationScope中,在用EL取JavaBean对象的属性时,不必指明JavaBean存储在什么Scope中,他会自动依次从 pageScope,requestScope,sessionScope, applicationScope中找,返回第一次找的值(因为内部使用的是PageContext对象的findAttribute方法)。但是为了让代码更加清晰,显式指定Scope也未尝不可。
package model; public class User
{
private String name;
private int age;
public String getName(){
return name ;
}
public void setName( String name ){
this .name = name ;
}
public int getAge(){
return age ;
}
public void setAge( int age ){
this .age = age ;
}
}
<%@ page contentType= "text/html; charset=UTF-8" pageEncoding ="UTF-8" trimDirectiveWhitespaces= "true"
session ="true" %> <%@ page import= "model.*" %> <%-- 将对一个user存放到pageScope中,并初始化age属性为21 --%> < jsp:useBean id ="user" class= "model.User" scope = "page">
< jsp:setProperty name ="user" property= "age" value = "${param.age} " />
</ jsp:useBean> user的age属性值:${user.age} <br />
user的age属性值:${pageScope.user.age} <br />
EL中的隐式对象
pageScope | page范围,是一个存储k-v属性的一个Map容器。 |
requestScope | request范围,是一个存储k-v属性 的一个Map容器 |
sessionScope | session范围,是一个存储k-v属性 的一个Map容器 |
applicationScope | application 范围,是一个存储k-v属性 的一个Map容器 |
param |
存储求参数Paramter的Map容器。等价于request.getParameter()。 用于取单值请求参数。如果用来获取多值参数,如checkbox 的值,则只返回第一个值。 |
paramValues |
用于获取多值请求参数。返回所有值的String数组(例如checkbox的)。如果这个参数只有一个值,则返回一个只有1个元素的数组。
等价于request,.getParameterValues()
|
pageContext |
也就是JSP中的隐式对象pageContext。pageContext JSP页面的上下文对象。可以获取其他8大对象。
${pageContext.request.method} 获取当前请求方法。
${pageContext.session.id} 等价于 session.getId()
${pageContext.request.queryString} 取得请求的查询字符串
${pageContext.request.requestURL} 取得请求的URL
${pageContext.request.contextPath} 服务的web application 的名称
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的IP 地址
${pageContext.session.new} 判断session 是否为新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息
|
initParam | ServletContext对象的getInitParameter。在web.xml中配置的全局初始参数的一个Map容器 |
cookie | 代表容纳当前请求的所有cookie对象的中的一个Map,每一个cookie 的名称name就是key. |
header |
包含所有请求头的一个Map。用于访问单值请求头。如果用来访问多值请求头,则值返回第一个值。
${header["accept-language"]}
${header.connection}
|
headerValues |
用于获取多值请求头。返回多值标头的值的String数组。
如果这个头域只有一个值,则返回一个只有1个元素的数组。
|
EL函数和自定义EL函数
【JSP】EL表达式语言的更多相关文章
- JSP简明教程(四):EL表达式语言、JavaBean、Cookie、Session
EL表达式语言 EL这是Expression Language.的目的是为了简化JSP句法.来看几个例子来清除. ${test} 它会被翻译成<%=test%> ${test.name} ...
- JSP的EL表达式语言
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaB ...
- 11 JSP/EL表达式/EL函数
JSP * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行 * JSP的运行原 ...
- JSP EL表达式
1 EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- Jsp,EL表达式的入门
Jsp,EL表达式的入门 *Servlet/JSP 是两种动态的WEB资源的两种技术 使用Servlet生成HTML的页面是可以的 response.getWriter("<form ...
- jsp EL表达式 字符串的比较
jsp EL表达式 字符串的比较 跟JavaScript一样,直接使用两个等于号即可:== 代码如下: <c:if test="${highLight == 'visa'}" ...
- JSP EL表达式 获得 request的GET/POST方法
JSP EL表达式 获得 request的GET/POST方法: 不在requestScopse中: <p>得到request的方法</p> <p>pageCont ...
- JSP EL表达式 param、paramValues的使用
JSP EL表达式 param.paramValues的使用: <%@ page language="java" import="java.util.*" ...
- JSP EL表达式使用
JSP EL表达式使用: Servlet: package com.stono.servlet; import java.io.IOException; import java.util.HashMa ...
- JSP EL表达式忽略方法
JSP EL表达式忽略方法: web.xml中,和jsp中:jsp中的等级要高一些: web.xml: <?xml version="1.0" encoding=" ...
随机推荐
- lua:值得看的博客资源 ...
凯奥斯 :https://blog.csdn.net/ecidevilin/article/category/6454847 https://blog.csdn.net/qinyuanpei/arti ...
- lua封装的位运算
1.移位运算基础 --与 同为1,则为1 --或 有一个为1,则为1 --非 true为 false,其余为true --异或 相同为0,不同为1 --ZZMathBit = {} function ...
- geoserver PostGIS的安装和使用
PostGIS是一个非常流行并且开源的具有空间分析能力的关系型数据库,它作为PostgreSQL数据库的一个插件.PostgreSQL是一个功能非常强大并且开源的关系型数据库.目前项目使用的版本为Po ...
- MTK 预置apk
一.如何将带源码的APK预置进系统? 1) 在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例 2) 将 Test ...
- 九个PHP很有用的功能
1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数.但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: // 两个默认参数的函数 ...
- Linux查看系统进程
1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 tomcat 的 to 按 tab).2. ps ...
- ajax之cache血与泪~~
场景:项目以ie5渲染页面,点击导出列表数据(Excel形式),点击导出发送get请求,后台生成Excel文件,返回文件地址信息 异常:ie第一次返回的信息正常,之后返回的都是第一次的结果,googl ...
- Ubuntu 16.04服务器 软件的安装及配置
SSH的安装及配置 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则 ...
- 5 -- Hibernate的基本用法 --4 9 其他常用的配置属性
Hibernate其他常用的配置属性: ⊙ hibernate.show_sql : 是否在控制台输出Hibernate持久化操作底层所使用的SQL语句.只能为true和false两个值. ⊙ hib ...
- ios开发之 -- NSString指定字体高亮显示
一个简单的小需求,就是在一个字符串里面,指定一部分字节高亮显示,代码如下: NSString *descStr = @"需要高亮显示的字符"; NSString *nickStr ...