JSP中EL表达式语言学习总结

JSP2.0 最重要的特性就是EL表达式语言,JSP用户可以用它来访问应用程序数据。

表达式的语言

  • EL表达式以 {expression}

关键字

以下关键字,它们不能作为标识符:
and eq gt true instanceof or ne le false empty not lt ge null div mod

[] 和 . 运算符

注意两者都可以访问一个带有属性的对象,但是 .不能访问不是有效的 java变量名
例如 ${header[accept-language]} 只能是这样访问

访问 JavaBean

利用 . 或者 [] 运算符,都可以访问 bean 的属性,其结构如下:
{beanName.propertyName}

EL隐式对象

EL可以提供一组它自己的隐式对象来访问不同的对象

pageContext

pageContext对象表示当前JSP 页面的 javax.servlet.jsp.PageContext 它包含了所有的JSP隐式对象
例如,可以利用以下任意一个表达式来获取当前的 ServletRequest
{pageContext.request.method}

initParam

隐式对象 InitParam可以获取上下文参数的值,例如,为了获取 password的上下文参数值,可以使用以下表达式 ${initParam.password}

param

隐式对象 param用于获取请求参数值。这个对象表示一个包含所有请求参数的Map。例如要获取 userName的值,可以使用以下任意一种表达式。
${param.userName}

paramValues

利用隐式对象 paramValues 可以获取一个请求参数的多个值。这个对象表示一个包含所有请求参数,并以参数名称作为key的Map。每个key的值是一个字符串数组
${paramValues.selectedOptions[0]}

header

隐式对象 header表示一个包含所有请求标题的 Map。为了获取header值,要利用header名称作为key。例如,为了获取accept-language这个header值,可以使用以下表达式:
${header["accept-language"]}
注意 隐式对象 headerValues表示一个包含所有请求head,并且以 header名称作为key的Map。但是它返回的是一个字符串数组

Cookie

隐式对象cookie可以用来获取一个Cookie。这个对象表示当前 HttpServletRequest中所有cookie的值。例如,为了获取名为jessionid的cookie值,要使用以下表达式:
{cookie.jessionid.path}

EL运算符

  • 四则运算符 + - * 除法可以使用/ 或者 div 取模可以使用 % 或者 mod
  • 逻辑运算符 且 &&(and) 或 (|| 和 or) 非(! 和 not)
  • 关系运算符 (== 和 eq) 不等于(!= 和 ne) 大于(>和gt) 大于或等于(>= 和 ge) 小于或等于(<= 和 le)
    小于(<和lt) 小于或等于 (<= 和le)
  • 三目运算符 ${statement?A:B}
  • empty 用来检查一个值是否为 Null 或者empty ${empty X} 如果 X为null或者是一个长度为0的字符串,那么该表达式将返回 true ,如果是一个空 Map、空数组或者空集合,它也将返回 True, 否则返回False

写里一个例子

定义 两个 JavaBean


image.png
image.png

编写一个 Servlet


image.png

写一个 jsp页面


image.png

最后访问浏览器 http://localhost:8080/employee

image.png

似不似很简单呀,这就是传说中的EL表达式啦

总结:

  • EL表达式的基本语法 ${expression}
  • 访问属性对象 和JavaBean的两种方式 {bean["beanName"]}
  • EL 里面的隐式对象 好多呀,自己往上面看呗
  • EL里面的算术 逻辑运算 empty 运算符

感谢阅读,喜欢点个赞呗 !

你可能感兴趣的:(JSP中EL表达式语言学习总结)