zoukankan      html  css  js  c++  java
  • jsp中核心标签使用

    <%@ page language="java" import="java.util.*, java.lang.*" pageEncoding="UTF-8"%>
    <%@ page import="entity.Student" %>
    <%--导入核心标签库 --%>
    <%--
    	uri: 表示需要导入的标签库的uri名称。每个标签库都会有一个tld后缀名的标签声明文件,在tld文件中都有唯一的uri的名称。这个uri的名称就是当前标签库的名称。
    	prefix: 使用标签库的前缀,通用和tld文件的short-name名称相同
     --%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>核心标签库</title>
      </head>
      <body>
      	<%
      	String name = "mzy";
      	pageContext.setAttribute("name", name);
      	 %>
      	
      	<%-- 
      	(1) <c:set></c:set>给域对象赋值 
    
       	var: 数据的名称
       	value: 保存的数值
       	scope:保存到哪个域
       	page -> page域
       	request -> request域
       	session -> session域
       	application -> application域
       	 --%>
       	 <c:set var="name" value="jack" scope="request"/>
       	
       	
       	<%--
       	(2) <c:out/> 获取域对象的数据
       		value:代表获取域中的某个名称内容。
       		如果数据在域中,必须使用EL表达式去获取
       		
       		default:默认值。当前需要获取的内容为null,
       		那么使用默认值代替。
       		
       		escapeXml:
       		默认情况为true,out标签会把输入的内容进行转义。
       		(及里面有特殊字符进行转义输出)
       		如果不需要转义,则设置为false即可!
        --%> 
        <c:out value="${name }"></c:out><br>   ${name }
        <c:out value="${pageScope.name }"></c:out><br>
       	<c:out value="${requestScope.name }" default="<h3>标题</h3>" escapeXml="false"></c:out><br>
       	
       	
       	<hr/>
       	<%--
    	(3)   	<c:if/>:单条件判断
    		   	test:
    		   	条件表达式。返回true的时候,就会执行if标签体内容,
    		   	否则,不执行。
    	 --%>
       	 <c:if test="${10>8 }">
       	 	<input type="submit" value="提交"/>
       	 </c:if>
       	 
       	 
       	 <%--
       	 (4) 
       	 		<c:choose/>+<c:when/>+<c:otherwise/>
       	 		多条件判断
       	 		
       	 		登录之后,一定会把数据存放到session域,user名称
       	 		模拟登录:
       	 		session.setAttribute("user", user);	
       	  --%>
       	  <%-- 模拟登录 --%>
       	  <c:set var="user" value="mzy" scope="session"></c:set>
       	  
       	  <c:choose>
       	  	<c:when test="${!empty sessionScope.user }">
       	  		欢迎回来,您的用户名是:${sessionScope.user }
       	  		<a href="">【退出登录】</a>
       	  	</c:when>
       	  	<c:otherwise>
       	  		请先<a href="www.baidu.com">注册</a>
       	  		或<a href="">登录</a>
       	  	</c:otherwise>    
       	  </c:choose>
       	  
       	  <%--
       	  (5) 
       	  		<c:forEach/>	用于迭代或循环
       	  		begin:从哪个元素位置开始遍历,从0开始
       	  		end:到哪个元素位置
       	  		step:增加步长。默认step为 1
       	  		items:需要遍历的数据。(数组、List集合  或者 Map集合)
       	  		如果是获取域数据,那么使用EL表达式获取
       	  		var:每个元素名称
       	  		varStatus:当前状态对象。该对象封装当前元素状态信息。
       	  		例如:count属性:表示当前遍历的是哪个元素,从1开始的
       	   --%>
       	   <%
       	    List<Student> list = new ArrayList<Student>();
       	    list.add(new Student("aaa", "111111"));
       	    list.add(new Student("bbb", "222222"));
       	    list.add(new Student("ccc", "333333"));
       	    pageContext.setAttribute("list", list);
     	    
     	   
      		Map<String,Student> map = new HashMap<String,Student>();
            map.put("001", new Student("aaa", "111111"));
       	    map.put("002", new Student("bbb", "222222"));
       	    map.put("003", new Student("ccc", "333333"));
       	  pageContext.setAttribute("map",map);
     	
       	    %>
       	    <hr>
       	    List集合:<br>
       	    <c:forEach items="${list }" var="stu" varStatus="varSta">
    			序号:${varSta.count } - 
    			姓名:${stu.name } - 
    			密码:${stu.id }   	    
       	    	<br/>
       	    
       	    </c:forEach>
       	    <hr>
       	    
       	    Map集合:<br>
       	    <%--
       	    	注意:
       	    		forEach标签遍历Map集合时,把每个Map的对象
       	    		使用Entry封装:
       	    		Entry封装键对象和值对象,通过getKey()
       	    		获取键对象,通过getValue()获取值对象
       	     --%>
       	     <c:forEach items="${map }" var="entry">
       	     	编号:${entry.key } - 
       	     	姓名:${entry.value.name } - 
       	     	学号:${entry.value.id }<br/>
       	     </c:forEach>
       	     
       	     
       	     
       	 <%--
       	 (6) <c:forTokens>  遍历特殊字符串
       	 	 items:需要遍历的字符串
       	 	 delims:指定分割符号
       	 	 var:每个内容的名称
       	  --%>
       	  <%-- 不写scope默认的就是pageScope --%>
       	  <c:set var="str" value="java-net-php-平面设计"></c:set>
       	  <%
       	  	String str = (String)pageContext.getAttribute("str");
       	  	String[] strs = str.split("-");
       	  	for(int i=0; i<strs.length; i++) {
       	  		// out.write(strs[i]+" ");
       	  	}
       	   %>    
       	  <c:forTokens items="${str }" delims="-" var="s">
       	  ${s }
       	  </c:forTokens>
       	  
       	  <%--
       	  (7) <c:redirect/> 重定向标签
       	   --%>
       	  <%
       	  	// response.sendRedirect(request.getContextPath()+"/guess.jsp");
       	   %>
       	   <%-- 注意:此标签的重定向是在站内跳转,与我们熟知的重定向服务器行为不同 --%>
       	   <c:redirect url="/guess.jsp"></c:redirect>
      </body>
    </html>
    

  • 相关阅读:
    安装minikube
    【知识总结】预训练语言模型BERT的发展由来
    【爬虫】批量下载极客时间课程
    【Python】中国有哪些同名的省市县?
    【笔记】Java函数式编程
    【linux】没有root权限如何通过apt安装软件
    Flink命令行提交job
    MybatisPlus QueryWrapper
    MybatisPlus逻辑删除
    MybatisPlus分页操作
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053510.html
Copyright © 2011-2022 走看看