JSTL中的Core标签库总结(一)

本文介绍了JSTL标签库的基础知识及应用案例,详细解释了Core标签库中<c:out>、<c:if>、<c:choose>、<c:forEach>等标签的用法,并通过实例演示了如何在JSP页面中使用这些标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)什么是JSTL?它有什么作用?

说明: JSTL是由sun公司制定的一套标准标签库,它可以简化JSP代码量、使得JSP开发者维护工作更加容易。


JSTL标签库有:Core、|18N、SQL、XML、Functions分别对应的前缀c、fmt、sql、x、fn.

(二)实现一个简单JSTL案例

在项目中lib中导入 jstl-1.2.jar、jstl-standard.jar

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ 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>JSTL案例</title>
</head>
<body>
   <center> 
         <c:out value="实现第一个JSTL程序"></c:out>
   </center>
</body>
</html>

输出:

这里写图片描述


(三)JSTL中Core标签库中常用标签

(1).<c:out>标签的使用

(2)<c:out>标签的常用3个属性

1.value:指定输出文本内容

2.default:当value属性值为null时,向浏览器页面输出默认值

3.escapeXml:用于指定是否将> ,< ,&等特殊字符进行HTML编码转换再输出,默认值为true.
(一)使用<c:out>标签输出默认值
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ 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>JSTL案例</title>
</head>
<body>
   <center> 
         <!-- 第一个out标签,如果没有获取到请求参数,打印默认字符串 -->
         <c:out value="${param.username}" default="Hello World"></c:out><br><br>
         <!-- 第二个out标签,如果没有获取到请求参数,打印默认字符串 -->
         <c:out value="${param.username}">Hello World</c:out>
   </center>
</body>
</html>

浏览器地址栏输入:http://localhost/Project/index.jsp结果为:

这里写图片描述


浏览器地址栏输入:http://localhost/Project/index.jsp?username=Kaina结果为:
这里写图片描述


实例演示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ 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>JSTL案例</title>
</head>
<body>
   <center> 

         <!-- escapeXml值为true时,把下面的语句默认为字符串打印  -->
         <c:out value="${param.username}"  escapeXml=""> 
           <a href="https://www.baidu.com/">登录百度网址</a>
         </c:out>
   </center>
</body>
</html>

(二)<c:if>标签的3个属性
1.test:设置逻辑表达式

2.var:指定逻辑表达式中的变量名

3.scope:指定var变量的作用范围,默认值为page,如果test的计算结果为true,那么标签体将执行,否则不执行。

实例演示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ 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>JSTL案例</title>
</head>
<body>
   <center> 
         <!--var配置变量名,value配置变量值  -->
         <c:set  value="1"  var="a"></c:set>
         <!-- 如果test属性中的表达式为true,打印出以下内容 -->
         <c:if test="${a==1}">
                                              标签体中的内容正在被执行.......
         </c:if>
   </center>
</body>
</html>

(三)<c:choose>标签嵌套以下标签

1.<c:when>:此标签中的test属性:设置逻辑表达式
2.<c:otherwise>

实例演示:

<!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>JSTL案例</title>
</head>
<body>
   <center> 
          <c:choose>
                <!--相当于Java中的if语句-->
               <c:when test="${empty param.username}">
                                                                                      请输入姓名.......
               </c:when>
                <c:when test="${ param.username=='Kaina'}">
                        ${ param.username} 是一个IT爱好者                                   
               </c:when>
               <!--相当于else语句  -->
               <c:otherwise>
                        ${ param.username}是一个公民
               </c:otherwise>

          </c:choose>
   </center>
</body>

浏览器地址栏输入:http://localhost/Project/index.jsp?username=Kaina

这里写图片描述


(四)<c:forEach>标签的6个属性

1.var:指定属性名称

2.items:指定集合对象

3.begin:遍历开始位置

4.end:遍历结束位置

5.step:迭代因子的增量

6.varStatus:指定当前迭代信息对象保存到Page域中的名称

实例演示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ page import="java.util.*" %>  
<!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>JSTL案例</title>
</head>
<body>

          <% String[] names={"张三","李四","王五","曹操"}; %>
          String 数组中的元素:<br/>
          <c:forEach var="name" items="<%=names%>">
               ${name}<br>
          </c:forEach>
          <%
             Map user=new HashMap();
             user.put("1","张三");
             user.put("2","李四");
             user.put("3","王五");
             user.put("4","曹操");
          %><hr/>
          HashMap集合中的元素:<br>
          <c:forEach var="entry" items="<%=user%>">
              ${entry.key} &nbsp; ${entry.value}<br>
          </c:forEach>


</body>
</html>

输出:
这里写图片描述


实例演示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ page import="java.util.*" %>  
<!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>JSTL案例</title>
</head>
<body>
     timeList集合:<br>
    <%
       List  timelist=new ArrayList();
              timelist.add("Friday");
              timelist.add("Thusday");
              timelist.add("Tuesday"); 
              timelist.add("Monday");
              timelist.add("Wednesday");

    %><hr>
    <c:forEach var="time" items="<%=timelist %>" begin="1" end="3"  step="2">
              ${time} &nbsp;<br><hr>
    </c:forEach> 

</body>
</html>

输出:
这里写图片描述


实例演示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ page import="java.util.*" %>  
<!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>JSTL案例</title>
</head>
<body>
     <%
        List userlist=new ArrayList();
        userlist.add("张三");
        userlist.add("李四");
        userlist.add("王五");

     %>
     <table  border="1" bgcolor="#9999dd">
            <tr>
                <td>序号</td>
                <td>索引</td>
                <td>是否为第一个元素</td>
                <td>是否为最后一个元素</td>
                <td>元素的值</td>
            </tr>

            <c:forEach var="name" items="<%=userlist%>" varStatus="status">
              <tr>
                 <td>${status.count}</td>
                 <td>${status.index}</td>
                 <td>${status.first}</td>
                 <td>${status.last}</td>
                 <td>${name}</td>
               </tr>    
            </c:forEach>

     </table>

</body>
</html>

输出:

这里写图片描述


(5)<c:param><c:url>标签

基本语法:

1.<c:url var="变量名" url="路径值">

2.<c:param  name="变量名" value="属性值">

实例演示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--使用taglib标签,引入Core标签库 --%>    
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ page import="java.util.*" %>  
<!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>JSTL案例</title>
</head>
<body>
    绝对路径构造URL:<br>
    <c:url var="myURL"  value="http://http://localhost:8080/Project/index.jsp">
           <c:param name="username" value="Kaina"></c:param>
           <c:param name="country" value="China"></c:param>
    </c:url>
    <a href="${myURL}">index.jsp</a>
  相对路径构造URL:<br>
    <c:url var="myURL" value="index.jsp?username=Kaina&country=China">
           <a href="${myURL }">index.jsp</a>  
    </c:url> 
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值