您的位置:首页 > Web前端 > JavaScript

初识EL、JSTL

2015-09-21 11:17 543 查看
JSP 中嵌套的大量Java代码增加了页面内哦让的复杂度,使得页面不够简洁,不方便代码的维护。为此,如果我们用标准标签库(JSTL),配合EL表达式,就会减轻JSP文件的复杂度,方便维护。

以下是本文的目录大纲:

一、什么是EL表达式

二、EL表达式的作用

三、使用EL表达式访问Bean属性

四、使用EL表达式进行运算

五、什么是JSTL

六、如何使用JSTL

七、如何开发自定义标签

若有不正之处,请批评指正,不胜感激。

若转载请标明原文链接:

初识EL、JSTL

一、什么是EL表达式

EL(Expression Language)表达式是一套简单的计算规则,用于给JSP标签的属性赋值,也可以直接用来输出。

表达式也可以脱离标签单独使用。

二、EL表达式的作用

EL表达式的作用可分为以下几类:

- 访问Bean的属性

- 输出简单的运算结果

- 获取请求参数值

三、使用EL表达式访问Bean属性

通常情况下的JavaBean指的是一个公共的类,含有一个空参的构造方法,一些属性以及访问这些属性提供的get/set方法,方法名与属性名需要符合一定的规范。

使用EL表达式访问Bean属性时可使用如下两种方式:

- 方式一:对象名.属性名−方式二:{对象名.属性名}
- 方式二 : {对象名[“属性名”]}

方式一:${对象名.属性名}

如:${user.name}

- 执行过程:容器会依次从pageContext, request, session, application

中查找绑定名称为”user”的对象。找到后,调用“getName”方法,然后输出。

- 等价代码如下:

{%

User user = (User)request.setAttribute(“user”);

out.print(user.getName());

%}

上述代码存在的问题:

- 如果request中没有user对象,会报500错误;

- 没有为name属性赋过值,页面会打印出”null”字样

- 取值时绑定名写错,会报空指针500的异常

而使用EL表达式,可避免上述的问题,

- 如果没有为name属性赋值,页面输出空白,不会出现“null”的字样

- 如果区知识绑定名写错,页面输出空白,不会报空指针异常

注意:属性名不能写错,否则报错

方式二 : ${对象名[“属性名”]}

- 方括号中的属性名可以使用单引号或双引号

-此种方式允许[]中出现绑定名,还可以允许[]中出现从0开始的下标,用于访问数组中的某个元素的值。

如:




指定对象的查找范围



四、使用EL表达式进行运算

EL表达式可以做一些简单的计算,可将结果直接输出或给JSP标签的属性赋值

算术运算符有五个:+、-、*或$、/或div、%或mod

关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge

逻辑运算符有三个:&&或and、||或or、!或not

其它运算符有三个:Empty运算符、条件运算符、()运算符

例:



五、什么是JSTL

JSTL(JSP Standard Tag Library)JSP标准标签库

六、如何使用JSTL

step1,将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下

step2,使用taglib指令导入要使用的JSP标签

<%@ taglib uri=”” prefix= “” %>

uri: JSP标签的命名空间

prefix: 命名空间的前缀

[code]<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


介绍JSTL的三个主要的核心标签:

核心标签-if标签



核心标签-choose标签



核心标签-forEach标签




- index 返回正在被迭代的对象的下标,下标从0开始

- count返回是第几次迭代,从1开始

七、如何开发自定义标签

step1,编写Java类,继承SimpleTagSupport类;

step2,在doTag方法中添加处理逻辑;

step3,配置标签说明文件

补充:

JSTL应用



如果有哪位朋友有补充的内容,欢迎下方留言,不胜感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: