JSTL应用2

简介: 1、 标签的使用  第一种:                 第二种:  程序体   test如果等于"true"那么执行代码  如果不等于true 那么不执行      var 是一个 bool型的变量用于保存 条件结果  scope是一个取值的范围   ...

1、<c:if> 标签的使用 

第一种:  

   <c:if   test="条件表达式"   var="变量名" scope="范围"/>         

 第二种: 

<c:if   test="条件表达式"   var="变量名" scope="范围">

程序体

</c:if> 

test如果等于"true"那么执行代码  如果不等于true 那么不执行     

var 是一个 bool型的变量用于保存 条件结果 

scope是一个取值的范围  

下面是一个简单使用代码:

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>


<c:if test="${3>1}"  var="aa">
<c:out value="${aa}"></c:out>
</c:if>


</body>
</html> 

2、<c:choose> <c:when>  <c:otherwise> 标签的使用   这个标签相当于java中的 switch语句 

<c:choose>
   <c:when test="${1>2}">    //对test进行赋值的时候 一定要把表达式结果转换为 字符串 
   代码段  

   </c:when>
   <c:when test="${2>1}">
   代码段
   </c:when>
</c:choose>

 

实例代码

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:choose>
   <c:when test="${1>2}">
   <c:out value="1大于2"></c:out>
   </c:when>
   <c:when test="${2>1}">
   <c:out value="1小于2"></c:out>
   </c:when>
</c:choose>
</body>
</html>

3、<c:forEach>  标签可以迭代 实现了  java.util.Collection接口类  

                                                        以及实现了 java.util.Map接口的 键值对 

                                                         或者数组  

 

<c:forEach>有2种标签

 第一种:

是迭代集合或者键值对  对于迭代次数未知

<c:forEach  items="集合对象的名字要转换成字符串类型"  var="集合中每一个值"    varStatus="当前的状态变量" >

程序体。。。。。

</c:forEach> 

 

varStatus 有四个属性  

first 是否是第一个元素

last 是否是最后一个元素

count  当前迭代的次数 

index表示 当前元素的下标

 

第二种:

<c:forEach  begin="开始的变量大小"   end="结束时候变量的大小" step="步长">    //这个类似于 for循环

循环体 

</c:forEach>

 

第二种比较简单因此我只写出迭代 实例:

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
   String []name={"one","two","three","four","five"}; 
   request.setAttribute("name", name); //java中数组也是引用数据类型
%>
<c:forEach items="${name}" var="currentVar" varStatus="currentStatus">
<c:out value="${currentVar}<br>" escapeXml="false"/>
<c:if test="${currentStatus.first}">
第一个元素<br>
</c:if>
<c:if test="${currentStatus.last}">
最后一个元素<br>
</c:if>
<c:out value="当前元素下标:${currentStatus.count}"></c:out>
</c:forEach>
</body>
</html>

 

4、

<c:forTokens>  可以用来迭代一个字符串 这个字符串有个特点 被多个符号分割开来  

这个标签会自动将分割后的字符串编程一个字符串数组   我们不仅可以迭代输出 也可以进行指定下标的元素输出

用法和 <c:forEach>类似

<c:forEach  items="可拆分的字符串" delims="分隔符号"  [var="保存每次迭代的变量名" ]   [begin="分割后的字符串数组第一个下标"]  [end="分割后字符串数组最后下标"]  

[step="步长"]    [varStatus="迭代状态变量这里和上面的一样"]>

</c:forEach>

 

下面是简单的例子

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
  String str="张三|李四|王五|马六";
  request.setAttribute("strName", str);
%>
<c:forTokens items="${strName}" delims="|" var="myName">
<c:out value="${myName}<br>" escapeXml="false"/>
</c:forTokens>
</body>
</html>

 

 

5、<c:import >标签用来将文本包含到 当前页面  文本可以使动态也可以是静态    如果url是null  或者不存在 那么都会抛出一个JspException异常

<c:import  url="文本的url"    [var="变量"]  [scope="范围"]  [charEncoding="字符编码"]>

<c:import ....> 等子程序

</c:import >

<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:import url="
http://127.0.0.1/1.txt"></c:import>
</body>
</html>

 

6、<c:url  value="跳转的页面路径"  [var="变量接收路径"]  [scope="范围"]/>   不带参数的页面跳转我们可以这样使用

<a href="<c:url value='idnex.jsp'/>">点击去首页</a>

如果带参数那么 就需要有body 

<c:url value="index.jsp" var="go">
 <c:param name="param" value="参数"/>
</c:url>
<c:out value="${go}"/>

相比之下我们可以看到 第二个产生的url是   index.jsp;jsessionid=C1C2E5EAE9F2797E44971A409A1F01D5?param=%b2%ce%ca%fd  带上一个参数 

第一个不带参数的url是 idnex.jsp

 

7、<c:redirect  url="要跳转的网页,不止是本地网络上其他页面也可以"   />      当一个请求到来的时候会自动跳转到指定网页  和  response.sendRedirect(String  url); 类似

       

下面带body的标签是可以重定向页面 并且传递参数过去 

   <c:redirect  url="网页url">  

 <c:param name="param1"  value="value">   

</c:redrect>

   

加入页面时  http://www.baidu.com那么 之后的参数就是

http://www.baidu.com/?param1=555

 
目录
相关文章
|
C语言 Perl 存储
优化求解器之MPS文件的格式简介
在使用MindOpt优化求解器解决实际问题时,其中重要的一环在于如何建立优化模型,以及存储优化模型以便于作为求解器的输入文件。存储优化模型的文件,其关键在于定义一种清晰的格式,用来说明优化模型的数学结构和相关的数据。接下来我们将发布一系列文章,对常见的MPS/LP等格式的模型文件和命名规范进行简要的介绍。
优化求解器之MPS文件的格式简介
|
数据可视化 图形学
小功能⭐️Unity2018 Shader Graph——全息影像、物体消融
小功能⭐️Unity2018 Shader Graph——全息影像、物体消融
|
前端开发 UED
CSS动画效果(炫酷登录页面)
CSS动画效果(炫酷登录页面)
|
SQL 数据库 HIVE
hive宽表窄表互转
hive宽表窄表互转
|
数据可视化 Ubuntu Linux
Docker操作相关思考题
Docker操作 (七)
140 0
|
存储 弹性计算 开发工具
基于OSS搭建个人云上博客
九步助你搭建个人云上博客
|
算法
AcWing刷题(第二周)(链表,单调栈等......)
AcWing刷题(第二周)(链表,单调栈等......)
157 0
|
编解码 算法 Java
|
小程序 API
微信小程序登录授权流程及所用API
微信小程序登录授权流程及所用API
519 0
|
消息中间件 NoSQL Java
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查