jstl标签和el表达式

1、jsp基础
1)什么是jsp?
sun公司制订的一种服务器端动态页面生成的技术规范。
2)如何写一个jsp?
step1 写一个.jsp为后缀的文件。
step2 添加如下的组成部分:
a, html(css,js)
b, java代码
java代码片断: <% %>
jsp表达式: <%= %>
jsp声明: <%! %>
用来给servlet添加属性和方法。
c,指令
page指令
import属性: 导包
pageEncoding属性: 告诉容器,.jsp文件保存时
的编码是什么。
contentType属性: 添加response.setContetType。
isELIgnored属性: true(缺省)/false,如果值为true,表示
忽略el表达式。
session属性:true(缺省)/false,如果值为false,则
对应的servlet不再声明和获得session对象,也就
是说,在jsp文件里,不能够使用session隐含对象了。
isErrorPage属性:true/false(缺省值),当值为true,
表示这是一个错误处理页面。
errorPage属性: 指定某个页面为错误处理页面。
include指令
file属性: 在指令所在的位置,插入file所指
定的文件的源代码。
比如: <%@include file="head.jsp"%>
taglib指令
在jsp页面文件中,导入标签。
uri属性:指定一个命名空间
prefix属性: 指定命名空间的前缀
d,隐含对象
out
request
response
session
application
exception:
只有当页面设置了isErrorPage=true时,
才能使用该对象获得异常信息。
pageContext: PageContext实例,容器
会为每一个jsp实例创建唯一的一个Page
Context实例。
绑订数据:
setAttribute(String name,Object obj);
Object getAttribute(String name);
removeAttribute(String name);
访问其它几个隐含对象:
可以通过pageContext获得其它8个
隐含对象。
config:ServletConfig的实例。
page:表示jsp实例。
e, 活动元素
在jsp实例已经运行了,要求容器做一些操作。
而指令是.jsp文件转换成.java文件时,要求容器
作一些操作。
A.
转发,page属性指定转发的地址。
B.
jsp实例在运行过程当中,调用另外一个
jsp实例。page属性指定调用的另外一个jsp
的地址。
C.
传参
D.
id:指定绑订名
scope:指定绑订范围,可以是page(指的是
pageContext隐含对象)、request、session
、application。
class:指定类名。
在scope指定的范围查找id指定的对象是否
存在,如果不存在,则创建并且绑订。

输出属性值
property="" value="">
给name指定的

对象的属性赋值。
property:指定属性名
value:指定属性值
param: 相当于request.getParameter();
采用“自省机制”给属性赋值。

f, 注释

注释中的代码会执行,但不会在页面上输出。
<%--xxxx--%>
注释中的代码不会执行,也不会在页面上输出。


3) jsp如何执行的?
a, .jsp --> .java文件,即容器要将.jsp转换成一个对应的
servlet。
html ----> service方法里,使用out.write输出。
<% %>--->service方法里,照搬。
<%= %>--->service方法里,使用out.print输出。
<%! %> --->添加对应的属性和方法。
b,执行servlet的service方法。

2、jsp标签与el表达式
1)什么是jsp标签?
sun公司开发的一种技术,用来将jsp页面中的
java代码使用相应的标签来替换,这样做的目的是
:简化jsp页面,方便页面的维护。
2)什么是el表达式?
一套简单的计算规则,用于给标签的属性赋值。
现在,el表达式也可以脱离标签直接使用,用于
直接输出。
3)如何使用el表达式?
a,el表达式的基本语法
${el表达式}
b,访问bean的属性(将java对象的属性值输出)
${https://www.360docs.net/doc/de8038231.html,}
容器会依次从pageContext、request、
session、application中查找绑订名为"user"
的对象。找到后,再调用该对象的getName
方法,并输出其结果。
如果依据绑订名找不到对应的对象,会
输出""。另外,会将null转换成""输出。
如何要指定查找范围,可以使用pageScope,
requestScope,sessionScope,applicationScope
来指定查找范围。比如:
${https://www.360docs.net/doc/de8038231.html,}
此外,还可以使用:
${user["name"]},允许[]里面出现变量。 该语法
也允许访问数组的某个元素。比如
${user.interest[0]}
c, 访问请求参数值。
${https://www.360docs.net/doc/de8038231.html,ername}
相当于 request.getParameter("username");
${paramValues.interest}
相当于 request.getParamterValues("interest");
d, 将表达式的结果直接输出,或者给标记的
属性赋值。
算术运算: 进行"+","-","*","/","%",但是,
"+"运算不能够进行字符串的连接操作。
关系运算:进行"==","!=",">","<",">=",
"<="六种关系运算。
逻辑运算:进行"&&","||","!"三种逻辑运算操作。
empty运算:
以下四种情况,结果为true。
空字符串
集合内容为空
值为null
找不到对应对象
4) jstl(标准标签库):
java standard taglib
a,如何使用标签
step1 将标签所对应的.jar文件添加到WEB-INF\lib
下面。比如,如果要使用jstl标签,应该将
standard.jar,jstl.jar 拷贝到lib下。
step2 在jsp页面当中,使用taglib指令导入相应


标签。
b, jstl标签的使用
:
当test的值为true时,会执行标签体的内容。
可以使用el表达式给test属性赋值。
var指定绑订名
scope指定绑订的范围
:
当有多个分支时,使用choose标签。
when表示一个分支,可以出现多次
otherwise表示例外,出现1次。
var="user" varStatus="">:
对集合进行遍历。
items指定要遍历的集合
var指定绑订名








练习:
将emplist.jsp,updteEmp.jsp中的java代码使用jsp
标签和el表达式来代替。

相关主题
相关文档
最新文档