第八章 JSTL和ELWord格式.docx

上传人:b****5 文档编号:21524031 上传时间:2023-01-31 格式:DOCX 页数:14 大小:21.10KB
下载 相关 举报
第八章 JSTL和ELWord格式.docx_第1页
第1页 / 共14页
第八章 JSTL和ELWord格式.docx_第2页
第2页 / 共14页
第八章 JSTL和ELWord格式.docx_第3页
第3页 / 共14页
第八章 JSTL和ELWord格式.docx_第4页
第4页 / 共14页
第八章 JSTL和ELWord格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第八章 JSTL和ELWord格式.docx

《第八章 JSTL和ELWord格式.docx》由会员分享,可在线阅读,更多相关《第八章 JSTL和ELWord格式.docx(14页珍藏版)》请在冰豆网上搜索。

第八章 JSTL和ELWord格式.docx

response.sendRedirect("

el.jsp"

);

%>

Page2:

body>

<

br/>

用户:

${eluser}//输出对象的toString()方法

hr/>

用户名:

${eluser.uname}//输出:

哈哈

${eluser["

uname"

]}//输出:

${eluser['

uname'

密码:

${eluser.upwd}//输出:

123456

消息:

${msg}输出:

登录成功

/body>

案例2:

pageContext.setAttribute("

pageContextName"

"

哈哈pageContext"

request.setAttribute("

requestName"

呵呵request"

session.setAttribute("

sessionName"

(*^__^*)request"

application.setAttribute("

applicationName"

嘎嘎application"

stuName"

哈哈"

呵呵"

(*^__^*)"

嘎嘎"

Useru=newUser();

u.setUname("

10"

user"

Listlist=newArrayList();

inti=1;

list.add("

1001"

+i++);

list"

list);

Mapnames=newHashMap();

names.put("

one"

LiYang"

two"

WangHua"

request.setAttribute("

names"

names);

%>

hr/>

${pageContextName}<

br/>

${requestName}<

${sessionName}<

${applicationName}<

${stuName}:

不指定范围从最小范围开始查找page,request,session,application没有找到返回null页面显示空白<

${pageScope.stuName}:

指定了范围在对应范围中查找<

${sessionScope.hahaas}<

${requestScope.stuName}<

${sessionScope.stuName}<

${applicationScope.stuName}<

${user.uname}<

${user.uname+10}<

String类型的数字相加自动转换进行算术运算

${pageScope.list[0]}<

${pageScope.list['

2'

]}<

${pageScope.list["

3"

姓名:

${names.one}<

${names["

]}<

${pageContext}

<

案例三:

网址:

http:

//127.0.0.1:

8080/t8/el3.jsp?

userName=haha&

userName=xixi

!

--从网址上获取值-->

${param.userName}<

//输出haha

${paramValues.userName[1]}<

得到一个数组,输出数组索引为1的输出xixi

二、JSTL标签

✧JSTL的概念:

JSTL的全称是JavaPagesStandardTagLibrary,即JSP标准标签库。

它包含了我们在开发JSP页面时经常用到的一组标准标签,这些标签为我们提供了一种不用嵌入Java代码,就可以开发复杂的JSP页面的途径。

JSTL标签库包含了各种标签,如:

通用标签、条件标签、迭代标签等。

✧JSTL的作用:

不用使用Java代码处理表示层逻辑的现象,直接可以使用JSTL标准标签库控制JSP中的程序流程。

✧JSTL的使用步骤:

⏹在工程中引用JSTL的两个jar包(jstl.jar、standard.jar)和标签库描述符文件,除此之外描述符文件也是必须的。

这些资源可以在网上下载到。

目前使用的开发工具MyEclipse中集成了JSTL,所有这步可以省略。

⏹在需要使用JSTL的JSP页面上使用taglib指令导入标签库描述符文件。

如:

%@tagliburi="

prefix="

c"

%>

✧JSTL核心标签库:

⏹通用标签库:

1.<

c:

set>

标签

标签用于定义变量,并将变量存储在JSP范围中或者JavaBean属性中,其语法格式分为如下两种:

1.1将value值存储到范围为scope的变量varible中

setvar=”variable”value=”v”scope=”scope”/>

释义:

var属性的值是设置的变量名

Value属性的值是赋予变量的值

Scope属性是对应的是变量的作用域。

可选值有page,request,session,application。

1.2将value值存储到target对象的属性中

setvalue=”value”target=”target”property=”property”/>

target属性是操作的对象,可以使用EL表达式表示

Property属性对应对象的属性名

Value属性是赋予对象属性的值

案例:

setvar="

username"

value="

管理员"

scope="

request"

>

/c:

userage"

23<

settarget="

${user}"

property="

^_^"

>

address"

西安<

1、${pageScope.username}<

--输出null-->

2、${requestScope.username}${userage}<

--管理员23-->

3、${sessionScope.username}<

4、${applicationScope.username}<

${user.uname}${user.address}<

--输出^_^西安-->

2.<

out>

标签用来显示数据的内容,类似于JSP中的<

%=%>

语法格式分为指定默认值和不指定默认值两种形式。

2.1不指定默认值

outvalue=”value”/>

value属性指需要输出的值,可以用EL表达式输出某个变量

2.2指定默认值

outvalue=”value”default=”defaulr”/>

default属性是value属性的值为空时,输出的默认值。

案例:

1、<

outvalue="

${username}"

--输出:

管理员-->

2、<

${userage}"

default="

20"

23-->

3、<

${asdfasdfasdfsa}"

不存在"

不存在-->

3.<

remove>

与<

标签的作用相反,<

用于移除指定范围的变量,语法如下:

removevar=”value”scope=”scope”/>

var属性是指待删除的变量的名称

Scope属性是指删除的变量所在的范围,可选项有page,request,session,application,如果没有指定,则默认为page

注意:

如果有四个范围具有相同名称的变量,并且没有指定变量所在的范围,如果删除这个变量名,那么会把所有范围内具有相同变量名的值删除。

page"

id"

application"

1005<

session"

testname"

1001<

1002<

1003<

1004<

id=${id}<

<

--id=1005-->

username=${username}<

--username=管理员-->

userage=${userage}<

--userage=23-->

address=${address}<

--address=西安-->

${pageScope.testname}<

--1001-->

${requestScope.testname}<

--1002-->

${sessionScope.testname}<

--1003-->

${applicationScope.testname}<

--1004-->

removevar="

/>

/>

--username=-->

--null-->

⏹条件标签:

if>

标签用来执行流程的控制,其功能与Java语言中的if完全相同,语法为:

iftest=”condition”var=”varName”scope=”scope”>

本题内容

Test属性是此条件标签的判断条件,为真是,执行本题内容,false不执行

Var属性定义变量,该变量存放判断以后的结果

Scope属性是指var定义变量的存储范围

条件表达式中的逻辑运算符

== 

或 

eq

逻辑运算符,判断符号左右两端是否相等,如果相等返回 

true 

,否则返回 

false

ne

逻辑运算符,判断符号左右两端是否不相等,如果不相等返回 

,否则返回false

 

lt

逻辑运算符,判断符号左边是否小于右边,如果小于返回 

gt

逻辑运算符,判断符号左边是否大于右边,如果大于返回 

le

逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回 

true,否则返回 

ge

逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回 

&

或and

逻辑运算符,与操作赋。

如果左右两边同为 

返回 

|| 

or

逻辑运算符,或操作赋。

如果左右两边有任何一边为 

not

逻辑运算符,非操作赋。

如果对 

取运算返回 

false 

true

empty

用来对一个空变量值进行判断 

:

null 

、一个空 

String 

、空数组、 

空 

Map 

、没有条目的 

Collection 

集合

forEachvar="

u"

items="

${ulist}"

varStatus="

s"

iftest="

${s.index%2==0}"

--如果s的索引和2取余等于0就给这一行设置为红色-->

Trbgcolor="

#00ff00"

${s.index%2!

=0}"

--如果s的索引和2取余不等于0就给这一行设置为黄色-->

#ffff00"

Td>

${u.uid}<

/Td>

${u.uname}<

${u.address}<

/tr>

forEach>

%@pagelanguage="

java"

import="

java.util.*"

pageEncoding="

GBK"

${"

}13+456}=${13+456}<

\${13+456}=${13+456}<

\${10>

20}=${10>

20}<

\${10gt20}=${10gt20}<

\${10<

20}=${10<

\${10lt20}=${10lt20}<

=20}=${10>

=20}<

\${20ge20}=${20ge20}<

=20}=${10<

\${20le20}=${20le20}<

\${10==20}=${10==20}<

\${10eq20}=${10eq20}<

\${10!

=20}=${10!

=20}<

\${20ne20}=${20ne20}<

\${nottrue}=${nottrue}<

\${!

false}=${!

false}<

%pageContext.setAttribute("

\${emptyuser}=${emptyuser}<

${notemptyuser}"

${user}<

\${notemptyuser}=${notemptyuser}<

\${trueandtrue}=${trueandtrue}<

\${true&

true}=${true&

true}<

false}=${true&

false}<

\${trueortrue}=${trueortrue}<

\${true||true}=${true||true}<

\${true||false}=${true||false}<

⏹迭代标签:

标签有两种语法格式,一种是遍历集合对象的成员,一种用来使语句循环执行指定次数。

1.遍历集合对象成员,语法:

forEachvar=”varName”items=”collectionName”varStatus=”varStatusName”begin=”beginIndex”end=”endIndex”step=”step”>

//内容

var属性是对当前每一个对象成员引用

items指被迭代的集合对象

varStatus属性用于存放var引用的成员相关信息,如索引等。

begin属性表示开始位置,默认为0,该属性可以省略

end属性表示结束位置,该属性可以省略

step表示循环的步长,默认为1,该属性可以省略

2.指定语句的执行次数,语法

forEachvar=”varName”varStatus=”varStatusName”begin=”beginIndex”end=”endIndex”step=”step”>

以上两种循环的区别:

第二种不能对一个集合对象进行遍历,而是根据指定的begin属性,end属性来控制循环的次数、及step属性控制步长。

%@pageimport="

com.xaccp.entity.User"

List<

User>

list=newArrayList<

();

Map<

String,User>

maps=newHashMap<

for(inti=1;

i<

11;

i++){

Useru=newUser(i,"

+(1000+i),"

高新"

+(i)+"

路"

list.add(u);

maps.put("

k00"

+i,u);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1