zoukankan      html  css  js  c++  java
  • Jsp的内置标签和jstl标签

    1、内置标签(动作标签)

      内置标签不需要再jsp页面导入标签

    1)、forward:请求的转发,格式如下

        <%-- 作用与这个相同 
        	<%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %>
        	--%>
        	<jsp:forward page="/forward2.jsp">
        		<jsp:param value="gqxing" name="name"/>
        		<jsp:param value="123456" name="password"/>
        	</jsp:forward>
    

    2)、include标签:用于包含页面,

    包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起。(先翻译再合并),动态包含

    格式如下:

    <jsp:include page="/common/header.jsp"></jsp:include><hr>
        	这是网页的身体部分<br>
    

    但它与前面学的include指令有一定的区别

    (1)、格式区别:

    <jsp:include page="/common/header.jsp"></jsp:include>
    <%@include file="/common/header.jsp" %>
    

    (2)、参数传递区别:

      动态包含可以传递参数,静态传递不能传递资源

    <jsp:include page="/common/head.jsp">
      		<jsp:param value="gqxing" name="name"/>
      	</jsp:include><hr>
        	这是网页的身体部分<br>
    
     <h2>我是网页的头部,我只有一句话</h2>
        <%=request.getParameter("name") %>

    (3)、原理不同:

      静态包含:先合并,再翻译,      动态资源:先翻译后合并

    在静态包含中只有主页(网页的身体,包含它的页)被编译成了java文件,同时被包含的页面被直接合并在了主页的身体部分,而在动态包含中,却没有这个特性,被包含页和主页都被一同编译了,同时在主页中通过方法去掉用被包含页,从而达到合并的目的,合并方法如下:

    org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/common/header.jsp", out, false);
    

     


    2、jstl(java standard tag libarary)java标准标签库

    (1)、核心标签库:

    标签的导入:具体如图

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

    (1)set标签,保存数据

     <%--set标签保存数据(数据保存到域对象,默认保存page域中)  --%>
        <c:set var="name" value="gqxing" scope="request"></c:set>
        ${requestScope.name}
    

    (2)、out标签,获取数据

     <%--out标签:获取数据
        	default:当value值为空的时候使用默认值
        	而单纯的el表达式没有这个功能‘
        	escapeXml="":是否对value值进行转移,默认为true,即进行转义
         --%>
        <c:out value="${name}" default="<h3>标签</h3>" escapeXml="false"></c:out>
    

    (3)、if标签:单条件的判断

    <%--if 标签:单条件判断 --%>
        <c:if test="${10>5}">
        	<h2>条件成立</h2>
        </c:if>
        <c:if test="${!empty name }">
        	是空值
        </c:if>
    

     (4)、-choose+when+otherwise标签,多条件判断

     <%--choose+when+otherwise标签,多条件判断 --%>
        <c:set var="score" value="95"></c:set>
        <c:choose>
        	<c:when test="${score>=90 && score<=100}">优秀</c:when>
        	<c:when test="${score>=80 && score<90}">良好</c:when>
        	<c:when test="${score>=60 && score<80}">及格</c:when>
        	<c:otherwise>不及格</c:otherwise>
        </c:choose>
    

    (5)、foreach 循环

    首先对List集合进行循环遍历

    <%--foreach 循环
        	begin:指定从哪开始,默认为0
        	end:指定的终止位置
        	step:指定的步长 形如for(i=1;i<10;i++)的i++
        	items:需要遍历的数据,通常是集合
        	var:每个元素起的名称,为了在循环体中可以取用
        	varStatus:当前正在遍历元素的状态对象。(count属性:当前位置,从1开始)
         --%>
        <% List<Student> list =new ArrayList<Student>();
           list.add(new Student("gqx",21));
           list.add(new Student("gqxing",22));
           list.add(new Student("guoqingxing",22));
           pageContext.setAttribute("list", list);
         %>
         <c:forEach begin="0" end="2" step="1" items="${list}" var="student" varStatus="varSta">
        	序号:${varSta.count}——姓名:${student.name}——年龄:${student.age}<br>
         </c:forEach>

    对map键值对进行遍历

    <% //MAP
        	Map<String,Student> map=new HashMap<String,Student>();
        	map.put("001", new Student("gqx",21));
        	map.put("002", new Student("gqxing",22));
        	map.put("003", new Student("guoqingxing",22));
    		//放入到域中去
    		pageContext.setAttribute("map", map);
         %>
         <c:forEach begin="0" end="2" step="1" items="${map }" var="entry" varStatus="varStar">
         	序号:${entry.key }——姓名:${entry.value.name }——年龄:${entry.value.age }<br>
         </c:forEach>
         <hr>
    

    (6)、forToken:循环特殊的字符串

     <%--forToken:循环特殊的字符串 --%>
         <%
         	String str="java-php-net-photoship-c++";
         	pageContext.setAttribute("str", str);
          %>
         <c:forTokens items="${str }" delims="-" var="s" varStatus="varStar">
         	${varStar.count }——${s }<br>
         </c:forTokens>
    

    (7)、redirect:重定向 

    <%--redirect:重定向 --%>
         <c:redirect url="http://www.baidu.com">
         </c:redirect>
    

      

  • 相关阅读:
    Jquery制作--焦点图淡出淡入
    CSS3动画第二式--组合动画
    Jquery制作--焦点图左右轮播
    css3动画第一式--简单翻滚
    CSS属性小结之--半透明处理
    我为什么要加班?
    自写网站阶段之:终结篇
    this指向问题
    let,var,const之间的区别?
    session,cookie,sessionStorage,localStorage的区别
  • 原文地址:https://www.cnblogs.com/helloworldcode/p/6055634.html
Copyright © 2011-2022 走看看