EL表达式和JSTL标签

EL表达式和JSTL标签
1.EL表达式
1.1EL语法
EL的基本语法:${表达式expr}
其中,$为EL语法中的输出符合,expr为EL有效表达式,它包含在一对大括号内。EL有效表达式可以包含文字、操作符、变量(对象引用)和函数调用等。
例如:${23+15}
EL有效表达式基础操作符
EL表达式举例
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
    <head><title>EL有效表达式</title></head>
    <body>
          ${true}
    <br>
         ${23+15.28}
    <br>
         ${12>10}
   <br>
         ${(12>10)&&(a!=b)}
    </body>
</html>


1.2EL内置对象


2.JSTL标签库

JSP标准标记库(JSP Standard Tag Library,JSTL):是一个实现Web应用程序中常用功能的定制标记库集,功能包括输出、程序流程控制、数据格式化、XML操作以及数据库访问等。

JSTL标记库:实现大量服务器端Java应用程序常用的基本功能。通过为典型表示层任务(如数据格式化和迭代或条件内容)提供标准实现,JSTL使JSP作者可以专注与特定应用程序的开发需求,而不是为这些通过操作多次开发

JSTL的功能标记库分类


JSTL的使用步骤

在WEB应用中使用JSTL需要以下步骤:

将JSTL所需的jar添加到WEB工程的类路径---javaEE5之后jstl并入javaee库中

在JSP页面中使用taglib指令引入标记库

使用JSTL标记,完成特定功能。

JSTL举例--- 使用 c标签输出

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Hello Word</title>
    </head>
    <body>
         <center>JSTL测试<c:out value="${1+1}"/></center>  
        </body>
</html>

Core标记库
core标记库:用来实现WEB应用中最常用的功能,在JSTL的5个标记库中,core标记库是最基础的标记库,其他标记库都是在core标记库的协同下来实现自身功能。

Core标记库内容


通用标记<c:out>标记

<c:out>标记:负责把变量或表达式的计算结果输出,其功能与调用out.println()基本一致

通用标记<c:set>标记

<c:set>标记:用于在某个范围(page、request、session或application)里面设置特定的变量,或者设置某个已经存在的Javabean的属性,其功能类似于<%request.setAttribute("name",value)%>

当不包含标记体内容时,语法如下:

<c:set value="value" var="varName" [scope={page|request|session|application}] />

其中:属性var为设置的变量的名称,value为变量的值,scope为可选属性,表示设置变量的范围,缺省为page.

当标记包含体内容时,<c:set>语法如下:<c:set var="varName" [scope={page|request|session|application}]]>body content</c:set>

由于包含体内容时,将采用体内容作为变量的初始值,因此,此时标记不能带有属性value。

通用标记<c:remove>标记

<c:remove>:删除某个变量,类似于<%session.removeAttribute("name")%>

它的语法格式为:

<c:remove var="varName" [scope="{page|request|session|application}"]/>

其中:属性var为要删除的变量的名称

例:

<%@page contentType=“text/html”%>
<%@page pageEncoding=“UTF-8”%>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
 <html>
    <head>
        <title>JSTL:使用c:set</title>
    </head>
    <body bgcolor=“#FFFFFF”>
        <!-设置一个属性,然后输出它->
        <br>
        <c:set var=“maxCount” value=“100”/>
        <c:out value=“${maxCount}”/>
        <!-设置属性时,把它的值放在标记的body中。->
        <br><c:set var=“password” >
            123456
        </c:set>
        <c:out value=“${password}”/>
      <!-设置变量,并且指定它们的范围->
        <c:set value=“20” var=“sessionAttr” scope=“session”/>
         <c:remove var=“sessionAttr”/>
<br><c:out value =“${sessionAttr}”/>  
    </body>
</html>

通用标记<c:catch>标记

<c:catch>:捕捉嵌套在它内部的标记和脚本所抛出的异常。类似于<%try{}catch{}%>

它的语法格式为:

<c:catch[var ="varName"]>
		nested actions
	</c:catch>
其中可选属性var用来保存捕捉到的异常信息。

例:

<%@page contentType=“text/html”%>
<%@page pageEncoding=“UTF-8”%>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<html>
<head>
  <title>JSTL:catch的使用</title>
</head>
<body bgcolor=“#FFFFFF”>
<c:catch var=“error”>
<%
  Integer.parseInt(“hello”);
 %>
 </c:catch>
 <hr>异常:
 <c:out value=“${error}”/>
 <hr>异常 exception.getMessage=
 <c:out value=“${error.message}”/>
</body>
</html>

Core条件标记

Core标记中提供了以下四个标记来帮助JSP开发人员实现分支处理,它们是:<c:if>、<c:choose>、<c:when>和<c:otherwise>

<c:if>标记

<c:if>标记:类似于编程语言中的if - else语句。

格式:

<c:if test="$param.role==1" var="user" scope="session">
It is admin.
</c:if>
功能:若参数role的值为1,则显示It is admin,并将判断结果true保存在user中

choose、when、otherwise标记

<c:choose><c:when><c:otherwise>标记:用于实现复杂判断,类似于if-else-if语句

格式举例

<c:choose>
    <c:when test="${param.sample==1}"> 
 	not 2,it is 1
   </c:when>
   <c:when test="${param.sample==2}"> 
	not 2
   </c:when>
   <c:otherwise>
	not 1,2
   <c:otherwise>
</c:choose>

core迭代标记
Core标记中的迭代标记有两个:<c:forEach>、<c:forTokens>.

<c:forEach>标记:作用类似于for循环语句。

格式举例:

<c:forEach var=“i” begin=“1” end=“10” step=“1”>
          ${i} <br/>
   </c:forEach>

<c:forTokens>标记

<c:forTokens>:可以根据某个分隔符来分隔指定的字符串

格式举例

<c:forTokens  items=“aa,bb,cc,dd” bengin=“0” end=“2” step=“2” delims=“,” var=“aValue”>
         ${aValue}
</c:forTokens>


Core的URL操作标记

Core标记包含三个URL操作有关的标记,分别是:

<c:import>和<c:url>、<c:redirect>。

另外还有一个辅助标记<c:param>.

import标记
<c:import>:包含另一个jsp页面到本页面来。

格式举例:

<c:import url=“/MyHtml.html” var=“thisPage”>
<c:import url=“www.aa.com/MyHtml.html” var=“thisPage”>

url标记

<c:url>:用于得到一个URL地址

格式举例

<c:url value=“/MyHtml.html” var=“urlPage”/>
<a href=“${urlPage}”>链接</a>

<c:redirect>标记

<c:redirect>:用于页面的重定向

格式举例:

<c:redirect url=“/MyHtml.html” />
param标记

<c:param>:用来为包含或重定向的页面传递参数,一般和<c:import>和<c:redirect>配合使用

格式举例

<c:redirect url=“/MyHtml.jsp” />
   <c:param  name=“username” value=“Tom”/>
</c:redirect>

Fomat标记库

说明:Fomat标记库用于实现程序的国际化和本地化。

国际化:是指应用程序所具有的一种功能特性,具有国际化特性的应用程序能够支持不同的语言以及不同格式的日期、时间、货币等信息,而无需软件修改。

本地化:是针对某一本地特性,如语言、文化、习俗等特殊需求来设计和改造软件的过程、和特殊的市场需求制造或改造产品的过程,用户在使用得当地本地化的产品时,可以使用其自己的语言和文化习惯与产品互动。

国际化的应用程序不需要任何改动即可实现本地化支持。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值