JSP表达式语言

JSP 表达式语言 JSP表达式语言是一种用于在JSP页面中直接插入数据的简单语法。它允许开发者将表达式直接嵌入到JSP页面中,并在请求处理时动态地显示结果。JSP表达式语言是一种简单易用的动态网页技术,它为JSP开发者提供了一种便捷的方式来在页面中插入数据。通过本文的介绍,相信读者已经对JSP表达式语言有了较为全面的了解。在实际开发过程中,合理运用JSP表达式语言可以提升开发效率,降低代码复杂度。 阅读详情

一、EL简介
   1.语法结构
     ${expression}
   2.[]与.运算符
     EL 提供.和[]两种运算符来存取数据。
     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如:
         ${user.My-Name}应当改为${user["My-Name"] }
     如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:
         ${sessionScope.user[data]}中data 是一个变量
   3.变量
     EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
     因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
     假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
     属性范围在EL中的名称
         Page          PageScope
         Request          RequestScope
         Session          SessionScope
         Application      ApplicationScope
        
二、EL隐含对象
   1.与范围有关的隐含对象
   与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope;
   它们基本上就和JSP的pageContext、request、session和application一样;
   在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。
  
   例如:我们要取得session中储存一个属性username的值,可以利用下列方法:
     session.getAttribute("username") 取得username的值,
   在EL中则使用下列方法
     ${sessionScope.username}

   2.与输入有关的隐含对象
   与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。
  
   例如我们要取得用户的请求参数时,可以利用下列方法:
     request.getParameter(String name)
     request.getParameterValues(String name)
   在EL中则可以使用param和paramValues两者来取得数据。
     ${param.name}
     ${paramValues.name}

   3.其他隐含对象
  
   cookie
   JSTL并没有提供设定cookie的动作,
   例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。

   header和headerValues
   header 储存用户浏览器和服务端用来沟通的数据
   例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。
   另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。

   initParam
   initParam取得设定web站点的环境参数(Context)
   例:一般的方法String userid = (String)application.getInitParameter("userid");
     可以使用 ${initParam.userid}来取得名称为userid

   pageContext
   pageContext取得其他有关用户要求或页面的详细信息。
     ${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}    取得主机端的服务信息

三、EL运算符
   1.算术运算符有五个:+、-、*或$、/或div、%或mod
   2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
   3.逻辑运算符有三个:&&或and、||或or、!或not
   4.其它运算符有三个:Empty运算符、条件运算符、()运算符
     例:${empty param.name}、${A?B:C}、${A*(B+C)}
  
四、EL函数(functions)
   语法:ns:function( arg1, arg2, arg3 …. argN)
   其中ns为前置名称(prefix),它必须和taglib 指令的前置名称一置

---------------------------------------------

补充:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

FOREACH:

<c:forEach items="${messages}"
var="item"
begin="0"
end="9"
step="1"
varStatus="var">
……
</c:forEach>

OUT:

<c:out value="${logininfo.username}"/>
c:out>将value 中的内容输出到当前位置,这里也就是把logininfo 对象的
username属性值输出到页面当前位置。
${……}是JSP2.0 中的Expression Language(EL)的语法。它定义了一个表达式,
其中的表达式可以是一个常量(如上),也可以是一个具体的表达语句(如forEach循环体中
的情况)。典型案例如下:
Ø ${logininfo.username}
这表明引用logininfo 对象的username 属性。我们可以通过“.”操作符引
用对象的属性,也可以用“[]”引用对象属性,如${logininfo[username]}
与${logininfo.username}达到了同样的效果。
“[]”引用方式的意义在于,如果属性名中出现了特殊字符,如“.”或者“-”,
此时就必须使用“[]”获取属性值以避免语法上的冲突(系统开发时应尽量避免
这一现象的出现)。
与之等同的JSP Script大致如下:
LoginInfo logininfo =
(LoginInfo)session.getAttribute(“logininfo”);
String username = logininfo.getUsername();
可以看到,EL大大节省了编码量。
这里引出的另外一个问题就是,EL 将从哪里找到logininfo 对象,对于
${logininfo.username}这样的表达式而言,首先会从当前页面中寻找之前是
否定义了变量logininfo,如果没有找到则依次到Request、Session、
Application 范围内寻找,直到找到为止。如果直到最后依然没有找到匹配的
变量,则返回null.
如果我们需要指定变量的寻找范围,可以在EL表达式中指定搜寻范围:
${pageScope.logininfo.username}
${requestScope.logininfo.username}
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
在Spring 中,所有逻辑处理单元返回的结果数据,都将作为Attribute 被放
置到HttpServletRequest 对象中返回(具体实现可参见Spring 源码中
org.springframework.web.servlet.view.InternalResourceView.
exposeModelAsRequestAttributes方法的实现代码),也就是说Spring
MVC 中,结果数据对象默认都是requestScope。因此,在Spring MVC 中,
以下寻址方法应慎用:
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
Ø ${1+2}
结果为表达式计算结果,即整数值3。
Ø ${i>1}
如果变量值i>1的话,将返回bool类型true。与上例比较,可以发现EL会自
动根据表达式计算结果返回不同的数据类型。
表达式的写法与java代码中的表达式编写方式大致相同。


IF / CHOOSE:

<c:if test="${var.index % 2 == 0}">
*
</c:if>
判定条件一般为一个EL表达式。
<c:if>并没有提供else子句,使用的时候可能有些不便,此时我们可以通过<c:choose>
tag来达到类似的目的:
<c:choose>
<c:when test="${var.index % 2 == 0}">
*
</c:when>
<c:otherwise>
!
</c:otherwise>
</c:choose>
类似Java 中的switch 语句,<c:choose>提供了复杂判定条件下的简化处理手法。其
中<c:when>子句类似case子句,可以出现多次。上面的代码,在奇数行时输出“*”号,
而偶数行时输出“!”。
---------------------------------------------

再补充:

         1     EL表达式用${}表示,可用在所有的HTML和JSP标签中 作用是代替JSP页面中复杂的JAVA代码.

         2    EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组值.pageScope表示页面范围的变量.requestScope表示请求对象的变量.sessionScope表示会话范围内的变量.applicationScope表示应用范围的变量.

         3    <%@   page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言.

         4    EL语言可显示 逻辑表达式如${true and false}结果是false     关系表达式如${5>6} 结果是false      算术表达式如 ${5+5} 结果是10

         5    EL中的变量搜索范围是:page request session application    点运算符(.)和"[ ]"都是表示获取变量的值.区别是[ ]可以显示非词类的变量

别再手动填序号了!用Python脚本在Arcgis属性表里实现分组自动编号(附完整代码) 本文详细介绍了如何利用Python脚本在Arcgis属性表中实现分组自动编号,告别低效的手工操作。通过核心代码解析和实战教程,帮助GIS工程师快速掌握自动化编号技术,提升工作效率并降低错误率。特别适合城市规划、国土调查等需要处理大量分组数据的场景。 阅读详情

相关推荐

TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法

本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。

weixin_42532938的博客 527

JSP表达式

JSP表达式

m0_69505153的博客 1364

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 570

第5课:JSP表达式(黄菊华Java网站开发系列教程)

JSP表达式 表达式用于在页面中输出信息,其使用格式如下: <%=变量或可以返回值的方法或 Java 表达式%> 特别要注意,“<%”与之间不要有空格。 JSP 表达式在页面被转换为 Servlet 后,变成了 outprint() 方法。所以,JSP 表达式与 JSP 页面中嵌入小脚本程序中的 out.print() 方法实现的功能相同。如果通过 JSP 表达式输出一个对象,则该对象的 toString() 方法会被自动调用,表达式将输出 toString() 方法返回的内容。 JSP

杭州.黄老师 1105

汽车诊断之UDS入门-0x19 0x0A服务

0x19 0x0A解析

weixin_44842720的博客 3833

从CAD图纸到GIS地图:手把手教你用Global Mapper处理DWG文件(含坐标配准)

本文详细介绍了如何使用Global Mapper将CAD图纸(DWG文件)转换为GIS地图,包括坐标配准、图层与属性转换等关键步骤。通过四参数变换和控制点匹配技术,确保数据精准转换,适用于测绘、城市规划等领域。文章还提供了高级处理技巧和质量控制流程,帮助用户高效完成GIS化工作。

weixin_29196891的博客 520

Jstl 表达式语言

基本语法一、EL简介   1.语法结构     ${expression}   2.[]与.运算符     EL 提供.和[]两种运算符来存取数据。     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如:         ${user.My-Name}应当改为${user["My-Name"] }     如果要动态取值时,就可以用[]来做,而

662

Geoserver新手必看:5分钟搞定世界地图发布(附中国省市数据)

本文为Geoserver新手提供了快速发布世界地图的实战指南。从环境搭建、数据准备入手,详细讲解了如何创建工作区、添加数据存储、发布图层及配置关键参数,并最终通过创建图层组实现地图服务的整合与预览。文章旨在帮助用户快速掌握Geoserver发布地图服务的核心流程与实用技巧。

cola5的博客 222

EL(Expression Language)语言介绍

目录 一、EL语言介绍 二、EL语言基本语法 三、EL语言的操作符 Empty操作符(空值检查) 比较操作符​编辑 EL表达式运算符 四、EL内置对象 五、EL语言作用 一、EL语言介绍 EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。 在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式${exp1}来进行调用。 在属性值中使用表达式有三种方式。 1、 value属性包含一个表达式 <some:tag value="${expr}"/&g

Zxy_zzz的博客 1730

商城系统全链路压测实战指南

全链路压测是模拟真实用户行为和生产环境流量,验证整个系统在高压下的稳定性和性能表现的关键手段。

monk all the way 1228

【数据集】GPM IMERG Daily Precipitation Dataset

GPM IMERG Daily Precipitation Dataset

WW、forever的博客 1218

JSP Expression Language

操作符The Arithmetic OperatorsThere are the expected operators here: +, -, *, /, %. You can also use the following for the / and % operators: div and mod. You can see examples of these being used in

olojiang的专栏 2042

UDS诊断服务基础详解之七-31服务

本节内容主要是讲解诊断服务中的31服务,包含31服务的使用场景,请求报文格式,响应报文格式,以及举例对31服务进行相关的说明

车载网络小D的博客 5625

jsp表达式语言_JSP表达语言

JSP表达语言 (JSP Expression Language) Expression Language(EL) was added to JSP 2.0 specification. The purpose of EL is to produce scriptless JSP pages. The syntax of EL in a JSP is as follows: 表达式语言(EL...

cunfen6312的博客 438

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

实验十三 JSP表达式语言——EL

result.jsp   <%@ page language="java" import="java.util.*,java.lang.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + reques

LET ME FLY 1135

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JSP中表达式语言(EL)

 EL——表达式语言一、了解表达式语言        在JSP中为了实现动态内容,需要编写很多Java代码,但是不鼓励使用态多的Java代码,因为这样会降低jsp页面的可读性,前端代码与Java代码混合大大降低了可读性。为了解决这个问题,就出现了EL——表达式语言。        表达式语言最初源自于jsp标准标签库(JSTL)的一部分,用于在不使用脚本、声明或者表达式的情况下,在jsp页面中渲染...

小白 808

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JSP:表达式语言(EL)

表达式语言(Expression Language)是一种简化的数据访问方式。使用表达式语言可以方便地访问JSP的隐含对象和JavaBean组件,在JSP2规范中,建议尽量使用表达式语言使JSP文件的格式一致,避免使用Java脚本。 表达式语言可用于简化JSP页面的开发区,允许美工设计人员使用表达式语言的语法获取业务逻辑组件传过来的变量值。 表达式语言并不是一种通用的程序语言,而仅仅是一种数据访问语言,可以方便地访问应用程序数据。 表达式语言的语法结构:${expression} 1,算术运算.

燕双嘤 881

JSP 表达式语言:JSP EL

JSP 表达式语言 JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true、false,还有null。 JSP EL允许您指定一个表达式来表示属性值。一个简单的表达式语法如下: ${expr} ...

weixin_30834783的博客 138

JSP2 之表达式语言

一,什么是表达式语言? 表达式语言(Expression Language)是一种简化的数据访问方式。使用表达式语言可以方便的访问JSP的隐含对象和JavaBeans组件,在JSP 2规范中,建议尽量使用表达式语言使JSP文件的格式一致,避免使用java脚本。 二,表达式语言的作用? 表达式语言可用于简化jsp页面的开发,允许美工设计人员使用表达式语言的语法获取业务逻辑组件传过来的变量值。表达

qq_34342083的博客 802
上一篇: 彻底解决JSP的中文乱码问题
下一篇: JSP自定义标签
csuliky
博客等级 码龄19年 77粉丝 57原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值