zoukankan      html  css  js  c++  java
  • JSTL 标签库 使用(web基础学习笔记十九)

    标签库概要:

    一、C标签库介绍

    1.1、<c:> 核心标签库 

    JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:
    1.表达式控制标签:out、set、remove、catch
    2.流程控制标签:if、choose、when、otherwise
    3.循环标签:forEach、forTokens
    4.URL操作标签:import、url、redirect

    二、表达式控制标签

    2.1、out标签

    <c:out value="" escapeXml="" default=""></c:out>

    功能: <c:out>主要用来显示数据的内容

    共有3个属性value是显示的内容,escapXML是否要转义true/false,设置为true将按原来的内容输出,flase将由浏览器解析,default设置默认值

    value属性是必添的,escapeXml属性是true时,不解析特殊字符,false时,解析特殊 字符

    <c:out> 用来显示数据对象(字符串、表达式)的内容或结果:

    <c:out value="&lt;这是超连接&gt;" escapeXml="false" default="默认值"></c:out><br>
    <c:out value="&lt;这是超连接&gt;" escapeXml="true" default="默认值"></c:out>

    2.2、set标签

    用于将变量存取于 JSP 范围中或 JavaBean 属性中

    功能: <c:set>主要用来将变量存储至JSP 范围中或是 JavaBean 的属性或Map 对象中。 属性列表:

    用户类

    package com.pb.entity;
    
    /**
     * 用户类
     * 
     * @author 森林森
     *
     */
    public class User {
        // 用户名,密码和年龄
        private String uname;
        private String pwd;
        // 封装
        public String getUname() {
            return uname;
        }
        public void setUname(String uname) {
            this.uname = uname;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    
    
    
        
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <<jsp:useBean id="news" class="com.pb.news.entity.News" scope="page"></jsp:useBean>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <c:out value="&lt;这是超连接&gt;" escapeXml="false" default="默认值"></c:out><br>
    <c:out value="&lt;这是超连接&gt;" escapeXml="true" default="默认值"></c:out><br>
    <c:set var="name1" value="张三" scope="page"></c:set>
    <c:set var="name2" scope="request">李四</c:set>
    <c:set target="${news }" property="title" value="下雪了"></c:set>
    <c:set target="${news }" property="id" >32</c:set>
    <ul>
    <li>从page中重到的值${pageScope.name1 }</li>
    <li>从page中重到的值${name2 }</li>
    <li>从java中获取的值title:${news.title }</li>
    <li>${news.id }</li>
    </ul>
    </body>
    </html>

    2.3、remove标签

    主要用来从指定的 jsp 范围内移除指定的变量。功能:主要负责移除变量

    <c:remove var="变量名" [scope="page|request|session|application"]></c:remove>

    <c:remove var="username" scope="session"/>
    
    ${sessionScope.username}—输不出结果
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <<jsp:useBean id="news" class="com.pb.news.entity.News" scope="page"></jsp:useBean>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <c:out value="&lt;这是超连接&gt;" escapeXml="false" default="默认值"></c:out><br>
    <c:out value="&lt;这是超连接&gt;" escapeXml="true" default="默认值"></c:out><br>
    <c:set var="name1" value="张三" scope="page"></c:set>
    <c:set var="name2" scope="request">李四</c:set>
    <c:set target="${news }" property="title" value="下雪了"></c:set>
    <c:set target="${news }" property="id" >32</c:set>
    <ul>
    <li>从page中重到的值${pageScope.name1 }</li>
    <li>从page中重到的值${name2 }</li>
    <li>从java中获取的值title:${news.title }</li>
    <li>${news.id }</li>
    <c:remove var="name1" scope="page"/>
    <c:remove var="name2" scope="request"/>
    <li>从page中重到的值${pageScope.name1 }</li>
    <li>从page中重到的值${name2 }</li>
    </ul>
    </body>
    </html>

    2.4、catch标签

    <c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息

    <c:catch var="name1">

          容易产生异常的代码

    </c:catch>

    如果抛异常,则异常信息保存在变量 name1 中。

    2.5、综合以上

    package com.pb.entity;
    
    /**
     * 用户类
     * 
     * @author 森林森
     *
     */
    public class User {
        // 用户名,密码和年龄
        private String uname;
        private int pwd;
        // 封装
        public String getUname() {
            return uname;
        }
        public void setUname(String uname) {
            this.uname = uname;
        }
        public int getPwd() {
            return pwd;
        }
        public void setPwd(int pwd) {
            this.pwd = pwd;
        }
    
    
    
        
    }

    jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <jsp:useBean id="user" class="com.pb.entity.User" scope="page"></jsp:useBean>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <!-- c:set标签普通使用 -->
    <c:set var="name1" value="张三" scope="request"></c:set>
    <c:set var="name2" value="李四" scope="page"></c:set>
    <!-- c:set标签java Bean使用 -->
    <c:set target="${user }" property="uname" value="张三丰"></c:set>
    <c:set target="${user }" property="pwd" value="108101"  ></c:set>
    <!-- 输出里作用域可以 省略 -->
    name1的值:<c:out value="${requestScope.name1 }"></c:out><br>
    name2的值:<c:out value="${pageScope.name2 }"></c:out><br>
    javaBean引用uname的值:<c:out value="${user.uname }"></c:out><br>
    javaBean引用pwd的值:<c:out value="${user.pwd }"></c:out><br>
    <!-- c:remove -->
    <c:remove var="name1"/>
    name1的值:<c:out value="${name1 }"></c:out><br>
    <!-- 异常 -->
    <!-- 以下如不加c:catch,页面将无法打开 -->
    <c:catch var="c1">
    <c:set target="${user }" property="age" value="18"></c:set>
    javaBean中没有age属性:<c:out value="${user.age }"></c:out>
    </c:catch>
    <!-- 页面并没有显示 ,catch中的内容-->
    <!-- 输出异常 -->
    <c:out value="${c1 }"></c:out>
    </body>
    </html>

     三、流程控制标签

    3.1、if标签

    功能:主要用于进行if 判断,如果为true,则输出标签体中的内容

    <!-- c:set标签普通使用 -->
    <c:set var="name1" value="张三" scope="request"></c:set>
    <c:set var="name2" value="李四" scope="page"></c:set>
    <!-- c:set标签java Bean使用 -->
    <c:set target="${user }" property="uname" value="张三丰"></c:set>
    <c:set target="${user }" property="pwd" value="108101"  ></c:set>
    <!-- 输出里作用域可以 省略 -->
    <c:if test="${name1=='李四' }" var="q">
    name1的值为:${name1 }
    </c:if>
    q的值:<c:out value="${q }"></c:out><br>
    <c:if test="${name2=='李四' }" var="flag">
    nam2的值:${name2 }
    </c:if>
    flag的值:<c:out value="${flag }"></c:out><br>
    <c:if test="${user.uname=='张三丰' }" var="flag">
    javaBean中user.uname的值:${user.uname }
    </c:if>
    flag的值:<c:out value="${flag }"></c:out><br>
    <c:if test="${user.pwd eq 123}" var="flag">
    javaBean中user.pwd的值:${user.pwd }
    </c:if>
    flag的值:<c:out value="${flag }"></c:out><br>

    3.2、choose、when、otherwise

    三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次

    和java中switch 类似

    switch--choose

    case---when

    default--otherwise

    以上关系

    也和多重if--else if--else if ---else功能类似

    <c:choose>、<c:when>和<c:otherwise>标签的使用必须符合以下语法规则:

    <c:when>和<c:otherwise>不能单独使用,它们必须位于<c:choose>父标签中。

    在<c:choose>标签中可以包含一个或多个<c:when>标签。

    在<c:choose>标签中可以不包含<c:otherwise>标签。

    在<c:choose>标签中如果同时包含<c:when>和<c:otherwise>标签,那么<c:otherwise>必须位于<c:when>标签之后。

    <%@page import="java.util.Random"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <jsp:useBean id="user" class="com.pb.entity.User" scope="page"></jsp:useBean>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>choose、when和otherwise标签应用示例</title>
    </head>
    <body>
    <%
    //随机产生100以内的随机整数
       Random r=new Random();
      int i=r.nextInt(100);
      //将结果放在请求中
      request.setAttribute("i", i);
      
    %>
    <c:choose>
    <c:when test="${i>90 }">
    i的值大于90!
    </c:when>
    <c:when test="${i>80 }">
    i的值大于80!
    </c:when>
    <c:when test="${i>70 }">
    i的值大于70!
    </c:when>
    <c:when test="${i>60 }">
    i的值大于60!
    </c:when>
    <c:when test="${i>50 }">
    i的值大于50!
    </c:when>
    <c:otherwise>
    i的值小于50,不算在内!
    </c:otherwise>
    </c:choose>
    
    </body>
    </html>

    多次刷新页面可以看到不同的结果

     四、循环标签

    4.1、forEach

    功能: <c:forEach>为循环控制,它可以将数组,集合(Collection)中的成员循序浏览一 遍。 属性列表:

    status.index   输出当前行的索引号

    status.coun   输出已遍历的行数  

    status.first 输出当前行是否是第一行

    status.last 输出当前行是否是最后一行

    示例

    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Enumeration"%>
    <%@page import="java.util.Vector"%>
    <%@page import="java.util.ArrayList"%>
    <%@page import="com.pb.entity.User"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <jsp:useBean id="user" class="com.pb.entity.User" scope="page"></jsp:useBean>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>forEach标签应用示例</title>
    </head>
    <body>
    <%
      List<User>users= new ArrayList<User>(); 
      for(int i=0;i<5;i++){
          User u=new User();
          u.setUname("T"+i);
          u.setPwd("00"+i);
          users.add(u);
      }
      request.setAttribute("users", users);
    %>
    <table border="1" align="center">
    <tr> 
    <th>用户名</th> 
    <th>密码</th> 
    <th>当前行的索引</th> 
    <th>已遍历的行数</th>
    <th>是否第一行</th> 
    <th>是否最后一行</th> 
    </tr>
    <c:forEach  var="user" items="${users }" varStatus="status">
    <tr> 
    <td><c:out value="${user.uname }"></c:out></td> <!-- 用户名 -->
    <td><c:out value="${user.pwd }"></c:out></td> <!-- 密码 -->
    <td>${status.index }</td> <!--输出当前行的索引号-->
    <td>${status.count }</td><!--输出已遍历的行-->
    <td>${status.first }</td> <!--输出当前行是否是第一行-->
    <td>${status.last }</td> <!--输出当前行是否是最后一行-->
    </tr>
    </c:forEach>
    </table>
    <br>
    <table border="1" align="center">
    <tr> 
    <th>用户名</th> 
    <th>密码</th> 
    <th>当前行的索引</th> 
    <th>已遍历的行数</th>
    <th>是否第一行</th> 
    <th>是否最后一行</th> 
    </tr>
    <!-- 指定开始和结束位置 -->
    <c:forEach  var="user" items="${users }" varStatus="status" begin="0" end="2">
    <tr> 
    <td><c:out value="${user.uname }"></c:out></td> <!-- 用户名 -->
    <td><c:out value="${user.pwd }"></c:out></td> <!-- 密码 -->
    <td>${status.index }</td> <!--输出当前行的索引号-->
    <td>${status.count }</td><!--输出已遍历的行-->
    <td>${status.first }</td> <!--输出当前行是否是第一行-->
    <td>${status.last }</td> <!--输出当前行是否是最后一行-->
    </tr>
    </c:forEach>
    </table>
    <br>
    <%--通过<c:forEach>输出从1到10的数据不设置步上,默认为1--%>
    <c:forEach var="i" begin="1" end="10">
    ${i }
    </c:forEach>
    <br>
    <%--通过<c:forEach>输出从1到10的数据--%>
    <!--设置步长为2,只输出奇数 -->
    <c:forEach var="i" begin="1" end="10" step="2">
    ${i }
    </c:forEach>
    <br>
    <%--通过<c:forEach>输出从1到10的数据--%>
    <!-- 能过c:if判断只输入偶数 -->
    <c:forEach var="i" begin="1" end="10">
    <c:if test="${i%2==0 }">${i }</c:if>
    </c:forEach>
    <br>
    </body>
    </html>

    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Enumeration"%>
    <%@page import="java.util.Vector"%>
    <%@page import="java.util.ArrayList"%>
    <%@page import="com.pb.entity.User"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <jsp:useBean id="user" class="com.pb.entity.User" scope="page"></jsp:useBean>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>forEach标签应用示例</title>
    </head>
    <body>
    <%
      List<User>users= new ArrayList<User>(); 
      for(int i=0;i<5;i++){
          User u=new User();
          u.setUname("T"+i);
          u.setPwd("00"+i);
          users.add(u);
      }
      request.setAttribute("users", users);
    %>
    <table border="1" align="center">
    <tr> 
    <th>用户名</th> 
    <th>密码</th> 
    <th>当前行的索引</th> 
    <th>已遍历的行数</th>
    <th>是否第一行</th> 
    <th>是否最后一行</th> 
    </tr>
    <c:forEach  var="user" items="${users }" varStatus="status">
    <tr> 
    <td><c:out value="${user.uname }"></c:out></td> <!-- 用户名 -->
    <td><c:out value="${user.pwd }"></c:out></td> <!-- 密码 -->
    <td>${status.index }</td> <!--输出当前行的索引号-->
    <td>${status.count }</td><!--输出已遍历的行-->
    <td>${status.first }</td> <!--输出当前行是否是第一行-->
    <td>${status.last }</td> <!--输出当前行是否是最后一行-->
    </tr>
    </c:forEach>
    </table>
    <br>
    <table border="1" align="center">
    <tr> 
    <th>用户名</th> 
    <th>密码</th> 
    <th>当前行的索引</th> 
    <th>已遍历的行数</th>
    <th>是否第一行</th> 
    <th>是否最后一行</th> 
    </tr>
    <!-- 指定开始和结束位置 -->
    <c:forEach  var="user" items="${users }" varStatus="status" begin="0" end="2">
    <tr> 
    <td><c:out value="${user.uname }"></c:out></td> <!-- 用户名 -->
    <td><c:out value="${user.pwd }"></c:out></td> <!-- 密码 -->
    <td>${status.index }</td> <!--输出当前行的索引号-->
    <td>${status.count }</td><!--输出已遍历的行-->
    <td>${status.first }</td> <!--输出当前行是否是第一行-->
    <td>${status.last }</td> <!--输出当前行是否是最后一行-->
    </tr>
    </c:forEach>
    </table>
    <br>
    <%--通过<c:forEach>输出从1到10的数据不设置步上,默认为1--%>
    <c:forEach var="i" begin="1" end="10">
    ${i }
    </c:forEach>
    <br>
    <%--通过<c:forEach>输出从1到10的数据--%>
    <!--设置步长为2,只输出奇数 -->
    <c:forEach var="i" begin="1" end="10" step="2">
    ${i }
    </c:forEach>
    <br>
    <%--通过<c:forEach>输出从1到10的数据--%>
    <!-- 能过c:if判断只输入偶数 -->
    <c:forEach var="i" begin="1" end="10">
    <c:if test="${i%2==0 }">${i }</c:if>
    </c:forEach>
    <br>
    <%--通过<c:forEach>遍历数组,枚举,集合等--%>
    <%
    int[]intarr=new int[]{10,20,30,40,50}; 
    String[]strarr=new String[]{"I","am","a","handsome","boy"}; 
    Vector v=new Vector(); 
    v.add("This");
    v.add("is"); 
    v.add("a"); 
    v.add("Enumeration");
    v.add("example"); 
    Enumeration e=v.elements(); 
    HashMap h=new HashMap(); 
    h.put("hello","0"); 
    h.put("hello1","1"); 
    h.put("hello2","2"); 
    h.put("hello3","3"); 
    h.put("hello4","4"); 
    request.setAttribute("intarr",intarr); 
    request.setAttribute("strarr",strarr); 
    request.setAttribute("e",e); 
    request.setAttribute("h",h);
    %>
    <h3>遍历整形数组</h3>
    <%--遍历整形数组--%>
    <c:forEach items="${intarr }" var="i">
    <c:out value="${i }"></c:out>
    </c:forEach>
    <h3>--遍历字符串数组--</h3>
    <c:forEach items="${strarr }" var="s">
    <c:out value="${s }"></c:out>
    </c:forEach>
    <h3>--遍历枚举--</h3> 
    <%--遍历枚举--%>
    <c:forEach items="${e }" var="e">
    <c:out value="${e }"></c:out>
    </c:forEach>
    <h3>--遍历HashMap--</h3> 
    <%--遍历HashMap--%>
    <c:forEach items="${h }" var="h">
    <c:out value="${h.key }"></c:out>=<c:out value="${h.value }"></c:out>
    </c:forEach>
    </body>
    </html>

    4.2、forTokens

    需求,对带有相同符合格式内容进行分割输出,例如,varstr="1,2,3,4,5,6"

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>c:forTokens 标签实例</title>
    </head>
    <body>
    <c:forTokens items="张三丰、张无忌、张翠册、殷素素" delims="、" var="item" varStatus="status">
    <h4>元素的值:<c:out value="${item }"></c:out><br></h4>
    当前索引<c:out value="${status.index }"></c:out><br>
    当前次数<c:out value="${status.count }"></c:out><br>
    是否为第一个<c:out value="${status.first }"></c:out><br>
    是否为最后一个<c:out value="${status.last }"></c:out><br>
    </c:forTokens>
    
    </body>
    </html>

    五 、URL操作标签

    5.1、import

    <c:import>标签提供了所有<jsp:include>行为标签所具有的功能,同时也允许包含绝对URL。

    使用<c:import>标签可以包含一个服务器中不同的网页内容。

    功能: <c:import>可以把其他静态或动态文件包含至本身JSP 网页。

    注意:<c:import>与<jsp:include>的区别
    <jsp:include>只能包含和自己同一个Web 应用程序下的文件;

    而<c:import>除了能 包含和自己同一个Web 应用程序的文件外,亦可以包含不同Web 应程序或者是其 它网站的文件

    通过<c:import>标签的var和scope属性可以将url属性所对应的页面内容以String的类型存储至varName中,但此时这个页面并不会输出到主包含文件的页面中.
    存储之后的数据,在需要的时候可以将它通过EL表达式将其取出.
    这里我发现一个问题,在这里取出被包含页面中的内容的时候一定要注意只能直接使用EL表达式取出,而不能使用<c:out>标签取出,因为被包含页面的内容都是以String类型存储于var变量中的,所以在输出的时候通过<c:out>会以String类型输出至主包含页面之中.具体表现如下
    <h4 align="center">绝对路径引入</h4>
    <c:import url="http://www.baidu.com" var="b"></c:import>
    <c:out value="${b }"></c:out>

    换成EL表达输出则可以显示正确

    <h4 align="center">绝对路径引入</h4>
    <c:import url="http://www.baidu.com" var="b"></c:import>
    ${b }

    相对路径引入

    <h2 align="center">同一目录相对路径引用</h2>
    <!-- 同一文件下的引用 -->
    <c:import url="./cfortaoken.jsp"></c:import>
    <hr>
    <h2 align="center">不同目录相对路径引用</h2>
    <%--<c:import>标签+var属性+<c:param>标签 三者组合使用 --%>
    <c:import url="/test/cif.jsp"></c:import>
    <hr>
    <c:import url="/jsp/test.jsp" >
    <c:param name="name" value="张三丰"></c:param>
    </c:import>
    <h2>传参数</h2>
    <c:import url="http://www.baidu.com/s">              <!--等于在baidu中搜索oracle-->
    <c:param name="wd" value="oracle"></c:param>
    </c:import>

    Url为本地的,并不是远程的

    5.2<c:param> 标签

    <c:param>标签用于在<c:import>和<c:url>标签中指定参数,而且与URL编码相关。

    在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值

    属性 描述 是否必要 默认值
    name URL中要设置的参数的名称
    value 参数的值 Body
    <c:import url="/jsp/test.jsp">
    <c:param name="uname1" value="john"></c:param>
    <c:param name="uname2" value="Hello"></c:param>
    </c:import>
    <hr>
    <c:url value="/jsp/test.jsp" var="pp">
    <c:param name="id" value="123"></c:param>
    <c:param name="name" value="java"></c:param>
    </c:url>
    <hr>
    <br>
    ${pp }

    5.3、url标签

    功能: <c:url>主要用来产生一个URL

    <h3>c url标签实例</h3>
    <%--生成一个URL变量 --%>
    <c:url value="http://www.baidu.com" var="conn" scope="page"></c:url>
    <%--输出变量 --%>
    <a href="<c:out value="${conn }"></c:out>">百度</a><br>
    <c:url value="/jsp/cif.jsp" var="myurl"></c:url>
    <a href="${myurl }">我的连接</a><br>
    <c:out value="${myurl }"></c:out><br>

    5.4、redirect标签

     <c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签。

    该标签用来实现请求的重定向。例如,对用户输入的用户名和密码进行验证,不成功则重定向到登录页面。或者实现Web应用不同模块之间的衔接

    c:redirect标签有如下属性:

    属性 描述 是否必要 默认值
    url 目标URL
    context 紧接着一个本地网络应用程序的名称 Body
    <!--重定向外部URL-->
    <c:redirect url="http://www.baidu.com/">
    </c:redirect>
    
    <%--相对路径本地重定向并转参 --%>
    <c:redirect url="/jsp/test.jsp">
    <c:param name="uname1" value="张三丰"></c:param>
    <c:param name="uname2" value="张无忌"></c:param>
    </c:redirect>
  • 相关阅读:
    ThinkPHP5.0更改框架的验证方法:对象->validate(true)->save();
    ThinkPHP5.0版本和ThinkPHP3.2版本的区别
    ThinkPHP5.0版本的优势在于:
    11: django-haystack+jieba+whoosh实现全文检索
    10: supervisor进程管理工具
    09: redis集群之sentinel
    08: python支付宝支付
    07: redis分布式锁解决超卖问题
    06:keepalive高可用集群(新)
    05: 使用docker部署nginx负载均衡
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4264764.html
Copyright © 2011-2022 走看看