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

JSTL标签库学习笔记 三、核心标签库的流程控制标签

2013-08-27 15:50 288 查看
流程控制标签

流程控制标签主要用于对页面简单业务逻辑进行控制。

流程控制标签包含有4个:<c:if>标签、<c:choose>标签、<c:when>标签和<c:otherwise>标签。

下面将介绍这些标签的功能和使用方式。

1.2.1、<c:if>标签

【功能】:<c:if>同程序中的if作用相同,用来实现条件控制。

【语法1】:<c:if
test=”条件1”
var=”name” [scope=”page|request|session|application”]>

【语法2】:<c:if
test=”条件2”
var=”name”[scope=”page|request|session|application”]>

【参数说明】:

(1)test属性用于存放判断的条件,一般使用EL表达式来编写。

(2)var指定名称用来存放判断的结果类型为true或false。

(3)scope用来存放var属性存放的范围。
【使用场景】:在开发中经常会出现不同用户的权限,首先对用户名进行判断(包括进行数据库验证,该功能可以由JavaBean实现,使用EL表达式得到一个布尔型的结果),把判断的结果存放在不同的JSP范围内(比如常用的session内),这样在每个页面都可以得到该用户的权限信息,根据不同权限的用户显示不同的结果。

【示例代码】:代码1.2.1实现了用户输入用户名提交到自身页面,页面判断用户是否为admin,如果是将出现欢迎界面,如果不是显示不同结果。

代码1.2.1 <c:if>标签使用示例:coredemo06.jsp

1 <%@ page language="java" pageEncoding="gbk"%>

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

3 <html>

4 <head>

5 <title>JSTL: -- if标签示例</title>

6 </head>

7 <body>

8 <h4>if标签示例</h4>

9 <hr>

10 <form action="coredom06.jsp" method="post">

11 <input type="text" name="uname" value="${param.uname}">

12 <input type="submit" value="登录">

13 </form>

14 <c:if test="${param.uname=='admin' }" var=”adminchock”>

15 <c:out value="管理员欢迎您!">

16 </c:out>

17 </c:if>

18 ${adminchock}

19</body>

20</html>

【代码解析】:

(1)第10~13行创建一个表单,表单中的元素为一个text文本输入框,一个提交按钮,并把信息提交给本页。

(2)第14行使用if标签进行判断,如果输入的为admin将显示出定义的字符串,并把检验后的结果赋给adminchock,

存储在默认的page范围中。

(3)第18行使用EL表达式得到adminchock的值,如果输入的用户名为admin将显示true。
1.2.2、<c:choose>、<c:when>和<c:otherwise>标签

这3个标签通常情况下是一起使用的,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。

【语法1】:

<c:choose>

<c:when>

//业务逻辑1

<c:otherwise>

//业务逻辑2

<c:otherwise>

//业务逻辑3

</c:choose>

【语法2】:

<c:when
text=”条件”>

表达式

</c:when>

【语法3】:

<c:otherwise>

表达式

</c:otherwise>

【参数说明】:

(1)语法1为3个标签的嵌套使用方式,<c:choose>标签只能和<c:when>标签共同使用。

(2)语法2为<c:when>标签的使用方式,该标签都条件进行判断,一般情况下和<c:choose>共同使用。

(3)<c:otherwise>不含有参数,只能跟<c:when>共同使用,并且在嵌套中只允许出现一次。

【示例代码】:代码1.2.2设定一个score变量的值为85,使用嵌套标签进行判断,根据判断返回结果。

代码1.2.2 循环控制标签:coredemo07.jsp

1
<%@ page language="java" pageEncoding="gbk"%>

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

3 <html>

4 <head>

5 <title>JSTL: -- choose及其嵌套标签标签示例</title>

6 </head>

7 <body>

8 <h4>choose及其嵌套标签示例</h4>

9 <hr>

10 <c:set var="score">85</c:set>

11 <c:choose>

12 <c:when test="${score>=90}">

13 你的成绩为优秀!

14 </c:when>

15 <c:when test="${score>=70&&score<90}">

16 您的成绩为良好!

17 </c:when>

18 <c:when test="${score>60&&score<70}">

19 您的成绩为及格

20 </c:when>

21 <c:otherwise>

22 对不起,您没有通过考试!

23 </c:otherwise>

24 </c:choose>

25 </body>

26 </html>

【代码解析】:

(1)第10行通过set标签设定score的值为85。

(2)第12~22行使用<c:when>进行条件判断。如果大于等于90,输出“您的成绩为优秀”;

如果大于等于70小于90,输出“您的成绩为良好”;大于等于60小于70,输出“您的成绩为及格”;

其他(otherwise)输出“对不起,您没能通过考试”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: