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

来源:互联网 发布:东莞pmp培训 知乎 编辑:程序博客网 时间:2024/06/06 18:22

流程控制标签

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

流程控制标签包含有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”]>

【参数说明】:

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

2var指定名称用来存放判断的结果类型为truefalse

3scope用来存放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)语法13个标签的嵌套使用方式,<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)输出“对不起,您没能通过考试”。

0 0
原创粉丝点击