JSTL标签和EL表达式学习

来源:互联网 发布:2016 python 书籍推荐 编辑:程序博客网 时间:2024/03/29 23:57

EL(Expression Language)表达式语言:用于计算和输出存储在标志位置(page、request、session、application)的java对象的值;
EL是JSP2.0规范的一部分,只要容器支持Servlet2.4/JSP2.0,就可以在JSP2.0网页中直接使用EL。

 

基本格式:${表达式}
所有的EL都是以“${”开始,以“}”结尾
表达式与开始符和终结符的空格被忽略
表达式的值为null,则在页面中显示为一个空字符串,而不是null

 

运算符
算术运算:+、-、*、/或div、%或mod;
关系运算:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge;
逻辑运算:&&或and、||或or、!或not;
特殊运算:empty(是否为null或空字符串)、?:(三元运算符);

转意符:\${变量};


 

作用域(以下11个EL作用域名称也是EL提供的隐式对象)


使用EL的时候,默认会以一定顺序(pageContext、request、session、application)搜索四个作用域,将最先找到的变量值显示出来。

访问JavaBean
第一种 点号记法:${BeanName.beanProperty}
第二种 数组记法:${BeanName[“beanProperty”]}
两种方法等同,在访问Bean属性时,第二种方法很少用

 

EL常用的隐式对象


开启和关闭EL表达式
开启方法:在servlet2.4之后默认方法为false,即可以不写或<%@ page isELIgnored="false" %>
关闭方法:<%@ page isELIgnored="true" %>

还有一种批量禁用EL的方法,可以在WEB-INF/web.xml中使用jsp-property-group标签批量禁用el,web.xml中进行如下配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>true</el-ignored>
        </jsp-property-group>
    </jsp-config>
</web-app>


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

JSTL是SUN公司制定的一个JSP标签库,由apache jakarta组织负责维护的开源项目,目的是用标签代替java代码片段。

JSTL1.0支持servlet2.3和JSP1.2规范.已通过Tomcat4版本测试.
JSTL1.1支持servlet2.4和JSP2.0规范.已通过Tomcat5版本测试.

 

JSTL的优点



JSTL标签库分类


导入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

 

JSTL Core 标签库 
Core 标签库,又被称为核心标签库,该标签库的工作是对于 JSP 页面一般处理的封装。在该标签库中的标签一共有 14 个,被分为了四类,分别 : 
多用途核心标签:<c:out> 、<c:set> 、<c:remove> 、<c:catch> 。 

条件控制标签:<c:if> 、<c:choose> 、<c:when> 、<c:otherwise> 。 
循环控制标签:<c:forEach> 、<c:forTokens> 。 
URL 相关标签:<c:import> 、<c:url> 、<c:redirect> 、<c:param> 。 

0 0
原创粉丝点击