JSTL学习笔记

原创 2013年12月04日 09:44:00
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="c.tld资源文件中有定义" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'JSTL_test.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <h1>测试jstl核心库</h1>
    <hr>
    <li>测试c:out</li>
    hello(default):<c:out value="${hello}"/><br>
    hello(el表达式):${hello }<br>
    hello(如果不存在可以使用默认值huangbiao):<c:out value="${hello}" default="huangbiao"></c:out>
    hello(如果不存在可以使用默认值huangbiao):<c:out value="${hello}">huangbiao</c:out>
    
    <li>测试c:set和c:remove</li>
    <c:set value="123" var="temp"/>
    temp:${temp }<br>
    <c:remove var="temp"/>
    temp:${temp }<br>
    
    <li>测试条件控制标签c:if</li>
    <c:if test="${v1 lt v2}" var="v">
    `	v1 小于 v2<br>
    	v = ${v }
    </c:if>
    
    <c:if test="${empty v3}">
    	v3为空
    </c:if>
    <c:if test="${not empty v4}">
    	v4不为空
    </c:if>
    
    <li>测试条件控制的标签c:choose,c:when,c:otherwise</li>
    <c:choose>
    	<c:when test="${v1 lt v2}">
    		v1 小于 v2
    	</c:when>
    	<c:when test="${v1 eq v2}">
    		v1 等于 v2
    	</c:when>
    	<c:otherwise>
    		不知道
    	</c:otherwise>
    </c:choose>
 
<li>测试循环控制标签c:forEach</li>
    <table>
    	<tr>
    		<td>姓名</td>
    		<td>年龄</td>
    		<td>所属组</td>
    	</tr>
    	<c:choose>
    		<c:when test="${empty userlist}">
    			<tr>
    				<td>没有符合条件的数据</td>
    			</tr>
    		</c:when>
    		<c:otherwise>
    			<c:forEach item="${userlist}" var="user">
    				<tr>
    					<td>${user.username }</td>
			    		<td><${user.age }/td>
			    		<td>${user.group.name }</td>
    				</tr>
    			</c:forEach>
    		</c:otherwise>
    	</c:choose>
    </table>
    
    <li>测试循环控制标签c:forEach,varstatus</li>
    <table border="1">
    	<tr>
    		<td>姓名</td>
    		<td>年龄</td>
    		<td>所属组</td>
    	</tr>
    	<c:choose>
    		<c:when test="${empty userlist}">
    			<tr>
    				<td>没有符合条件的数据</td>
    			</tr>
    		</c:when>
    		<c:otherwise>
    			<c:forEach items="${userlist}" var="user" varStatus="vs">
    				<c:choose>
    					<c:when test="${vs.count % 2 == 0}">
    						<tr bgcolor="red">
    					</c:when>
    					<c:otherwise>
    						<tr>
    					</c:otherwise>
	    					<td>${user.username }</td>
				    		<td><${user.age }/td>
				    		<td>${user.group.name }</td>
	    				</tr>
    				</c:choose>
    			</c:forEach>
    		</c:otherwise>
    	</c:choose>
    </table>
    
    
 <li>测试循环控制标签c:forEach,begin,end,step</li>
    <table border="1">
    	<tr>
    		<td>姓名</td>
    		<td>年龄</td>
    		<td>所属组</td>
    	</tr>
    	<c:when test="${empty userlist}">
   			<tr>
   				<td>没有符合条件的数据</td>
   			</tr>
    	</c:when>
   		<c:otherwise>
   			<c:forEach items="${userlist}" var="user" begin="2" end="8" step="2">
   				<tr>
   					<td>${user.username }</td>
		    		<td><${user.age }/td>
		    		<td>${user.group.name }</td>
   				</tr>
   			</c:forEach>
   		</c:otherwise>
    
    <li>测试循环控制标签c:forEach,普通循环</li>
    <c:forEach begin="1" end="10">
    	a<br>
    </c:forEach>
    
    <li>测试循环控制标签c:forEach,输出map</li>
    <c:forEach items="${maplist}" var="v">
    	${v.key }-----${v.value }<br>
    </c:forEach>
    
    <li>测试c:catch</li>
    <%
    	try{
    		Integer.parseInt("dsafd");
    	}catch(Exception e){
    		out.println(e.getMessage());
    	}
     %>
    <c:catch var="info">
    	<%
    		Integer.parseInt("dsafd");
    	 %>
    </c:catch>
    ${info }<br>
    
    <li>测试c:import</li>
    相当于include用法<br>
    <c:import url="hb.html"/>
    <c:import url="http://localhoust:8080/struts_login"/>
    
    <li>测试c:url 和 c:param</li>
    <c:url value="http://localhost:8080/drp/user_add.jsp" value="v">
    	<c:param name="username" value="jack"/>
    	<c:param name="age" value="20"></c:param>
    </c:url>
    ${v}<br>
    
    <li>重定向c:redirect</li>
    <c:redirect context="/struts_login" url="/index.jsp"></c:redirect>
    
  </body>
</html>
 

 

判断list中的变量与具体的字符串比较

<c:forEach items="${hb}" var="hobby" varStatus="vs">
	<c:choose>
		<c:when test="${hobby == 'basketball'}">
			篮球<input type="checkbox" name="hobbies" value="basketball">
		</c:when>
		<c:when test="${hobby == 'football'}">
			足球<input type="checkbox" name="hobbies" value="football">
		</c:when>
		<c:when test="${hobby == 'tennis'}">
			网球<input type="checkbox" name="hobbies" value="tennis">
		</c:when>
	</c:choose>
</c:forEach>

 

jstl的uri

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

 

 

JSTL 学习笔记

JSP Standard Tag Library (JSTL) 的规范完成于2002年7月,随后Apache Taglibs Projects在不久的几天中提交了一个参考实现。JSTL 的出现是为了...
  • nicholas_dsj
  • nicholas_dsj
  • 2005年04月26日 12:44
  • 1225

jstl学习笔记

%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> String path = request.getContextPat...
  • huangjing0220
  • huangjing0220
  • 2014年03月30日 23:17
  • 364

JSTL 学习笔记

JSP Standard Tag Library (JSTL) 的规范完成于2002年7月,随后Apache Taglibs Projects在不久的几天中提交了一个参考实现。JSTL 的出现是为了解...
  • herongxin
  • herongxin
  • 2006年01月07日 15:40
  • 904

JSTL学习笔记

 1, c:out tag的default和escapeXml属性①default属性代码:Hello 结果:Hello Guest 代码:Hello 结果:Hello    ②escapeXml属性...
  • matianjun002
  • matianjun002
  • 2007年01月15日 19:07
  • 763

jstl学习笔记

  jstl学习笔记                                           http://java.sun.com/jsp/jstl/core" prefix="c"%>...
  • comenglish
  • comenglish
  • 2007年05月26日 11:14
  • 702

JSP页面引用jstl

在myeclipse 中集成了jstl,所以只需要在jsp页面头部添加如下一句话就可以使用jstl的core标签库: 但是eclipse是没有任何插件的,所以要使用jstl需要自己配置。...
  • echo_oy
  • echo_oy
  • 2016年03月10日 17:13
  • 13053

JSTL 拼接字符串

jstl没有直接拼接字符串的方法 需要分两步 第一步可以这样 第二步再引用 ${tablename}...
  • zz210891470
  • zz210891470
  • 2017年11月04日 15:04
  • 377

超详细JSTL标签 参考手册

前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多...
  • u013380777
  • u013380777
  • 2016年07月26日 20:23
  • 2604

jstl三元运算符

Java中的三元运算符为:条件?条件为true值:条件为false的值EL也有一样的运算符,用EL的三元运算符有时可以代替c:choose标签,为我们的工作省下很大力气。 比如gender为0显...
  • Allen_liyu
  • Allen_liyu
  • 2017年06月07日 17:24
  • 2032

JSTL 函数内使用JSTL(内嵌)

JSTL函数内使用JSTL函数 ${fn:contains(rest.methods, ${pay.id})}    这是错误的,实际上内部可以省略${} 正确写法: ${f...
  • u013361445
  • u013361445
  • 2015年11月16日 18:49
  • 721
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSTL学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)