1.JSP标准标签库

       首先下载jstl-1.2.jar包如下图所示

C标签如何使用_C标签的使用

解压文件夹下的METN-INF下的tld文件如下所示:

 

C标签如何使用_C标签的使用_02

将这几个文件报错在WEB项目中WEB-INF下面,

 

C标签如何使用_C标签的使用_03

在demo1.jsp页面输入如下所示

  1. <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>   
  2. <body>  
  3.     <h3> <c:out value="Hellofff Mary!"></c:out></h3> 
  4.   </body> 

启动服务器即可进行输出Hellofff Mary!

若不想导入

  1. <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%> 

则可在web.xml中设置,代码如下:

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <web-app version="3.0"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  6.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
  7.   <display-name></display-name>  
  8.    
  9.   <jsp-config> 
  10.     <taglib> 
  11.         <taglib-uri>http://www.mldn.cn/jstl/core</taglib-uri> 
  12.         <taglib-location>/WEB-INF/c.tld</taglib-location> 
  13.     </taglib> 
  14.   </jsp-config> 
  15.    
  16.   <welcome-file-list> 
  17.     <welcome-file>index.jsp</welcome-file> 
  18.   </welcome-file-list> 
  19.    
  20. </web-app> 

此时即可在导入jsp或html页面中添加

  1. <%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%> 

记住哦!

2.核心标签库中主要标签

 

C标签如何使用_C标签的使用_04

<c:out>标签如何使用

 

  1. <body>  
  2.  <% pageContext.setAttribute("info","马开元的信息"); 
  3.   %> 
  4.   <h3>属性存在:<c:out value="${info}"/></h3> 
  5.   <h3>属性不存在:<c:out value="${info1}" default="没有此内容"/></h3> 
  6.  </body> 

<c:set>标签:

 

  1. <c:set var="info3" value="2号" scope="request"></c:set> 
  2.     属性内容:${info3} 
  3.      
  4.      

则此输出2号

例2:在项目中src下建立bean包,建立类Simple如下:

 

  1. package bean; 
  2.  
  3. public class Simple { 
  4.     private String id; 
  5.  
  6.     public String getId() { 
  7.         return id; 
  8.     } 
  9.  
  10.     public void setId(String id) { 
  11.         this.id = id; 
  12.     } 

在建立一个demo2.jsp页面如下

 

  1. <body> 
  2.   <% Simple simple=new Simple(); 
  3.     request.setAttribute("simple",simple); 
  4.    %> 
  5.    <c:set value="3号" target="${simple}" property="id"/> 
  6.    <h3>id值为,你猜猜是多少??黑黑${simple.id}</h3> 
  7. </body> 

将输出3号,为Simple类的id属性赋值,这在web开发中,一般用type=“hidden”文本进行隐形传值,用C标签可以简化步骤,也可为其赋值

<c:remove>标签如下:

 

  1. <c:set var="info3" value="2号" scope="request"></c:set> 
  2.     属性内容:${info3} 
  3.     <c:remove var="info3" scope="request"/> 
  4.     属性内容:${info3} 

第二个结果中没有任何信息

<c:catch>标签如下:

 

  1. <c:catch var="error"> 
  2.         <%  
  3.         int result=10/0; 
  4.          ;o 
  5.         %> 
  6.     </c:catch> 
  7.      
  8.     <h3>异常信息${error}</h3> 

<c:forEach>标签使用:

 

  1. <body> 
  2.    <%  
  3.     List all=new ArrayList(); 
  4.     all.add("你好"); 
  5.     all.add("我好"); 
  6.     all.add("他好"); 
  7.     pageContext.setAttribute("pp",all); 
  8.    %> 
  9.    <h3> 
  10.     输出全部: 
  11.     <c:forEach items="${pp}" var="mem"> 
  12.     ${mem} 
  13.     </c:forEach> 
  14.     </h3> 
  15.  </body> 

循环输出list中的值,$为EL表达式,输出时不需导入任何包,很方便使用,<c:forEach>标签在新闻网站中,若news中有多条,可以进行循环输出,代码方便容易懂

<c:choose>标签使用:

 

  1. <body> 
  2.   <% pageContext.setAttribute("number",10); %> 
  3.   <c:choose> 
  4.     <c:when test="${num==10}"> 
  5.     number的值是10 
  6.     </c:when> 
  7.      
  8.     <c:when test="${num==20}"> 
  9.     number的值是20 
  10.     </c:when> 
  11.     <c:otherwise> 
  12.         没一个条件满足 
  13.     </c:otherwise> 
  14.   </c:choose> 
  15. </body> 

在实际操作中代码示例如下:

 

  1. <%@ page language="java" import="java.util.*,com.mky.dao.*,com.mky.factory.*,com.mky.bean.*,com.mky.util.*" pageEncoding="gb2312"%> 
  2. <%@page import="java.sql.*" %> 
  3. <%@ taglib prefix="c" uri="/WEB-INF/c.tld"%> 
  4. <
  5.     String path = request.getContextPath(); 
  6.     String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
  7. %> 
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
  10. <html> 
  11.   <head> 
  12.     <base href="<%=basePath%>"> 
  13.      
  14.     <title>My JSP 'newsList.jsp' starting page</title> 
  15.      
  16.     <meta http-equiv="pragma" content="no-cache"> 
  17.     <meta http-equiv="cache-control" content="no-cache"> 
  18.     <meta http-equiv="expires" content="0">     
  19.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
  20.     <meta http-equiv="description" content="This is my page"> 
  21.     <!-- 
  22.     <link rel="stylesheet" type="text/css" href="styles.css"> 
  23.     --> 
  24.     <script type="text/javascript"> 
  25.     function del() 
  26.     { 
  27.         if(confirm("你真的想删除该记录么?")) 
  28.         { 
  29.             return true; 
  30.         } 
  31.         return false; 
  32.     } 
  33.     </script> 
  34.   </head> 
  35.    
  36.   <body> 
  37.    <% request.setCharacterEncoding("gb2312");//设置字符编码%> 
  38.   <%     
  39.         Connection conn=DBconnection.getConnection(); 
  40.         Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); 
  41.         ResultSet rs = null ; 
  42.         String sql = ""
  43.         int i = 0 ; 
  44.    %> 
  45.    
  46.       <div class="search_top" align="center"> 
  47.         <form action="AdminNewsManageList" method="get" name="searchNews"> 
  48.             <input id="searchContent" name="searchContent" type="text" maxlength="10"/> 
  49.             <select id="searchScope" name="searchScope"> 
  50.                 <option value="newsTitle">标题</option> 
  51.                 <option value="newsTime">时间</option> 
  52.                 <option value="newsWriter">作者</option> 
  53.             </select> 
  54.              
  55.              <
  56.             sql = "select * from t_newsCategory limit 0,3" ; 
  57.             rs = stmt.executeQuery(sql) ; 
  58.             i = 0 ; 
  59.             %> 
  60.             <select id="category" name="category"> 
  61.             <%  
  62.                 while(rs.next() && i<3) { 
  63.                     i ++ ; 
  64.             %> 
  65.              
  66.             <option value="<%=rs.getString("id")%>"><%=rs.getString("categoryName") %></option> 
  67.              
  68.                 <
  69.                     } 
  70.                 %> 
  71.             </select> 
  72.              
  73.             <input name="searchNews" type="submit" value="查询" /> 
  74.         </form> 
  75.       </div> 
  76.    <table border=1 align=center> 
  77.       <tr> 
  78.          <td width=100>序号</td> 
  79.          <td width=200>新闻标题</td> 
  80.          <td width=100>新闻作者</td> 
  81.          <td width=100>发布时间</td> 
  82.           <td>编辑</td> 
  83.           <td>删除</td> 
  84.       </tr> 
  85.          <c:forEach items="${requestScope.newsList}" var="news" varStatus="status"> 
  86.           <tr> 
  87.           <%-- 此处为编码自动增加编号,灰常方便,谨记 --%> 
  88.             <td><c:out value="${status.index+1}"> </c:out></td> 
  89.             <td>${news.newsTitle}</a></td> 
  90.             <td>${news.newsWriter} </td> 
  91.             <td>${news.newsTime}</td> 
  92.             <td align=center>  
  93.                  <a href="AdminUpdateNews1?newsID=${news.newsID}" style="text-decoration: none;"> 
  94.                   <img alt="" src="admin/img/edit.gif" border="0"></a>  
  95.             </td> 
  96.             <td align=center> 
  97.                 <a  
  98.                 href="AdminDeleteNews?newsID=${news.newsID}" target="_self" style="text-decoration: none;" onclick="return del();"> 
  99.                  <img alt="" src="admin/img/del.gif" border="0"></a>  
  100.                <%--  onclick="if (confirm('确定要删除吗?')) return true; else return false;" --%> 
  101.             </td> 
  102.           </tr> 
  103.         </c:forEach> 
  104.     </table> 
  105.     <div align="center"> 
  106.      
  107.     <c:choose> 
  108.         <c:when test="${page.hasPrePage}"> 
  109.             <a href="AdminNewsManageList?currentPage=1&category=${newsList[0].category}">首页</a> |  
  110.     <a href="AdminNewsManageList?currentPage=${page.currentPage -1 }&category=${newsList[0].category}">上一页</a> 
  111.         </c:when> 
  112.         <c:otherwise> 
  113.             首页 | 上一页 
  114.         </c:otherwise> 
  115.     </c:choose> 
  116.     <c:choose> 
  117.         <c:when test="${page.hasNextPage}"> 
  118.             <a href="AdminNewsManageList?currentPage=${page.currentPage + 1 }&category=${newsList[0].category}">下一页</a> |  
  119.     <a href="AdminNewsManageList?currentPage=${page.totalPage }&category=${newsList[0].category}">尾页</a> 
  120.         </c:when> 
  121.         <c:otherwise> 
  122.             下一页 | 尾页 
  123.         </c:otherwise> 
  124.     </c:choose> 
  125.     当前为第${page.currentPage}页,共${page.totalPage}页 
  126.      
  127.      
  128.   </div> 
  129.   </body> 
  130. </html> 

界面显示如下:

C标签如何使用_C标签的使用_05

着重看下<c:forEach>标签,和<c:choose>标签,很是使用!