JSP 中的EL表达式语言解析

JSP 中的EL指的是表达式语言,是express language的缩写哦!

那么,什么jsp中的EL表达式有什么作用以及它的使用范围有哪些呢?

答:它是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath。主要作用是在Java Web应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。

接下来一起具体了解一下他的用法:

使用时需要导入外部包,在tomcat服务器上找到此包,并导入。
apache-tomcat-8.5.34/lib/servlet-api.jar
案例从1.jsp 页面提交,通过servlet跳转到showEL.jsp页面完成赋值的输出
1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单提交</title>
</head>
<body>
    <form action="<%=request.getContextPath() %>/ELServlet" method="post">
        用户名:<input type="text" name="username"><br>
        年龄: <input type="text" name="age"><br>
        <input type="submit" value="提交"> 
    </form>

    
</body>
</html>

比较典型的,当你需要在JSP标签中指定一个属性值时,只需要简单地使用字符串即可:

<jsp:setProperty name=“box” property=“perimeter” value=“100”/>

如果JSP EL允许您指定一个表达式来表示属性值。一个简单的表达式语法如下:

${expr}

其中,expr指的是表达式。在JSP EL中通用的操作符是 . 和 {} 。这两个操作符允许您通过内嵌的JSP对象访问各种各样的JavaBean属性。

举例来说,上面的jsp:setProperty标签可以使用表达式语言改写成如下形式:

<jsp:setProperty name=“box” property=“perimeter”
value="${2box.width+2box.height}"/>

当JSP编译器在属性中见到"${}"格式后,它会产生代码来计算这个表达式,并且产生一个替代品来代替表达式的值。

JSP EL中的函数
JSP EL允许您在表达式中使用函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:

${ns:func(param1, param2, …)}

ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推。比如,有函数fn:length,在JSTL库中定义,可以像下面这样来获取一个字符串的长度:

${fn:length(“Get my length”)}

要使用任何标签库中的函数,您需要将这些库安装在服务器中,然后使用标签在JSP文件中包含这些库。

JSP EL隐含对象
JSP EL支持下表列出的隐含对象:
隐含对象 	                 描述
pageScope 	           page 作用域
requestScope 	       request 作用域
sessionScope 	       session 作用域
applicationScope 	   application 作用域
param 	               Request 对象的参数,字符串
paramValues 	       Request对象的参数,字符串集合
header 	               HTTP 信息头,字符串
headerValues 	       HTTP 信息头,字符串集合
initParam 	           上下文初始化参数
cookie 	               Cookie值
pageContext 	       当前页面的pageContext

具体对象的使用这里就不一一介绍了,平时使用的时候就可以得出结论,类似于jsp内置对象的使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值