码迷,mamicode.com
首页 > Web开发 > 详细

JSP中的内置标记(JSP动作)和 EL表达式

时间:2019-04-04 14:18:53      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:原理   编译器   运算符   str   对象   最小   pat   范围对   requests   

一、JSP的内置标记(JSP动作)

(一)JSP的内置标记都是以<jsp: 开始标记的

技术图片

一般会用到<jsp:useBean/>,<jsp:setProperty/>,<jsp:getProperty/>,这三种是配合使用的

示例图:

技术图片

显示效果:

技术图片

再示例一个include :

静态包含:<%@include%>

动态包含:<jsp:include/>

先定义一个要被包含的文件main.jsp:

技术图片

技术图片

显示效果如下:

技术图片

<jsp:forward/>:跳转——是服务端跳转——请求转发

图画的有点丑,将就将就

技术图片

技术图片

技术图片

 二、EL表达式

EL——Expreession Language :表达式语言,来自于ognl,ognl是一个开源项目。

简要的意思就是使用一系列的符号来描述一个表达式

示例图:

注释掉path的定义,你会看到下面会报错,由于在JSP中使用了没有定义变量的path,所以会报一个500的内部错误。

如果使用:${ 表达式 },会有什么变化呢,继续看下面

技术图片

 

 

 

 

显示结果:

 

技术图片

使用了 ${ 表达式 } :

使用EL表达式的前提是JSP页面的page指令的isELIgnored为false时使用,默认false。如果是使用true,编译器会把${path}原样显示,这里就不截图了,自己试试吧

对了EL表达式不是从页面获取值,而是从几个范围获取,继续看下面。

技术图片

显示结果:

技术图片

 

 (一)、${ 表达式 } 就称为EL表达式

  1.EL表达式是以 “ ${  ”开始 “ } ”结束,其中就是表达式。

  2.主要的作用:用于获取内置范围对象的值。

  3.EL表达式取值的原理:

    首先从最小的范围去取值,如果没有就到更大的范围I去找值,如果还是没有,一直到applicatiion范围去找值,如果还是没有,不会报错,返回空白(什么都没有),如果是查null值,也返回空白。

  4.EL表达式中表示范围对象是

    JSP内置对象:application、session、request、pageContext。

    EL表达式中范围对象:applicationScope。sessionScope、requestScope、pageScope。

EL表达式中表示范围对象示例:

技术图片

显示结果:

技术图片

 (二)、EL表达式访问符号:

有两种:

1、使用 " . "  例如:${applicationScope.path}

2、使用” [  ] “ 符号   例如:${applicationScope[ " path " ] },注意中括弧里面是要用引号引起来

(三)、EL表达式中的运算符

1.算术运算符

+     :例如:${6+6} 。注意:在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现${‘a‘+‘b‘}则会出现异常。

-      :例如:${4-3} 

*      :例如:${4*3} 

/      : 例如:${9/3}

2.EL关系运算符

关系运算符         说明                   范例                       结果

==或eq               等于    ${5==5}或${5eq5}      true

!=或ne    不等于    ${5!=5}或${5ne5}      false

<或lt     小于     ${3<5}或${3lt5}       true

>或gt    大于      ${3>5}或{3gt5}        false

<=或le   小于等于     ${3<=5}或${3le5}       true

>=或ge    大于等于   ${3>=5}或${3ge5}      false

*  表达式语言不仅可在数字与数字之间比较,还可在字符与字符之间比较,字符串的比较是根据其对应UNICODE值来比较大小的。

注意:在使用EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }

3.逻辑运算符

技术图片

4.Empty运算符

Empty运算符主要用来判断值是否为空(NULL,空字符串,空集合)。

5.条件运算符

${ A ? B : C}

JSP中的内置标记(JSP动作)和 EL表达式

标签:原理   编译器   运算符   str   对象   最小   pat   范围对   requests   

原文地址:https://www.cnblogs.com/xss512/p/10652583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!