el jstl 更新gae 使用 jstl 问题

本文详细介绍了JSP标准标签库(JSTL)的使用方法,包括数据输出、流程控制、循环迭代等功能,并深入探讨了表达式语言(EL)的各种应用场景,如变量访问、对象导航等。

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

-----------------------------------
		<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> 

		<h1>测试beanWrite标签</h1>
	<hr>
	<li>普通字符串</li><br>
	hello(jsp脚本):<%=request.getAttribute("hello") %><br>
	hello(采用标签):<bean:write name="hello"/><br>
	<p>
	<li>html文本</li><br>
	bj(default):<bean:write name="bj"/>	<br>
	bj(filter="true"):<bean:write name="bj" filter="true"/>	<br>
	bj(filter="false"):<bean:write name="bj" filter="false"/><br>
	<p>
	<li>日期</li><br>
	today(default):<bean:write name="today"/>	<br>
	today(format="yyyy-MM-dd HH:mm:ss"):<bean:write name="today" format="yyyy-MM-dd HH:mm:ss"/><br>
	<p>
	<li>数字</li><br>
	n(default):<bean:write name="n"/>	<br>
	n(format="###,###.###"):<bean:write name="n" format="###,###.###"/><br>
	n(format="###,###.###"):<bean:write name="n" format="###,###.000"/><br>


	<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic"%>  

		<h1>测试emtpy,notEmpty,present,notPresent</h1>
	<hr>
	<logic:empty name="attr1">
		attr1为空<br>
	</logic:empty>
	<logic:notEmpty name="attr1">
		attr1不为空<br>
	</logic:notEmpty>
	<logic:present name="attr1">
		attr1存在<br>
	</logic:present>
	<logic:notPresent name="attr1">
		attr1不存在<br>
	</logic:notPresent>
	<p>
	<logic:empty name="attr2">
		attr2为空<br>
	</logic:empty>
	<logic:notEmpty name="attr2">
		attr2不为空<br>
	</logic:notEmpty>
	<logic:present name="attr2">
		attr2存在<br>
	</logic:present>
	<logic:notPresent name="attr2">
		attr2不存在<br>
	</logic:notPresent>
	
	<p>
	<logic:empty name="attr3">
		attr3为空<br>
	</logic:empty>
	<logic:notEmpty name="attr3">
		attr3不为空<br>
	</logic:notEmpty>
	<logic:present name="attr3">
		attr3存在<br>
	</logic:present>
	<logic:notPresent name="attr3">
		attr3不存在<br>
	</logic:notPresent>


	<h1>测试Iterate标签</h1>
	<hr>
	<li>jsp脚本</li><br>
	<table border="1">
		<tr>
			<td>姓名</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<%
			List userList = (List)request.getAttribute("userlist");
			if (userList == null || userList.size() == 0) {
		%>
			<tr>
				<td colspan="3">没有符合条件的数据</td>
			</tr>
		<%
			}else {
				for (Iterator iter=userList.iterator(); iter.hasNext(); ) {
					User user = (User)iter.next();
		%>
			<tr>
				<td><%=user.getUsername() %></td>
				<td><%=user.getAge() %></td>
				<td><%=user.getGroup().getName() %></td>
			</tr>
		<%
				}
			}
		%>
	</table>
	<p>
	<li>标签</li>
	<table border="1">
		<tr>
			<td>姓名</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<logic:empty name="userlist">
			<tr>
				<td colspan="3">没有符合条件的数据</td>
			</tr>
		</logic:empty>
		<logic:notEmpty name="userlist">
			<logic:iterate id="u" name="userlist">
			<tr>
				<td>
					<bean:write name="u" property="username"/>
				</td>
				<td>
					<bean:write name="u" property="age"/>
				</td>
				<td>
					<bean:write name="u" property="group.name"/>
				</td>
			</tr>	
			</logic:iterate>	
		</logic:notEmpty>
	</table>	

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

	<h1>测试jstl核心库</h1>
	<hr>
	<li>测试c:out</li><br>
	hello(default):<c:out value="${hello}"/><br>
	abcd(default):<c:out value="${abcd}"/><br>
	abcd(default="empty"):<c:out value="${abcd}" default="empty"/><br>
	abcd(default="empty"):<c:out value="${abcd}"/>empty</out><br>
	bj(default):<c:out value="${bj}"/><br>
	bj(el):${bj }<br>
	bj(escapeXml="true"):<c:out value="${bj}" escapeXml="true"/><br>
	bj(escapeXml="false"):<c:out value="${bj}" escapeXml="false"/><br>
	<p>
	<li>测试c:set,c:remove</li><br>
	<c:set var="temp" value="123"/>
	temp:${temp }<br>
	<c:remove var="temp"/>
	temp:${temp }<br>
	<p>
	<li>测试条件控制标签c:if</li><br>
	<c:if test="${ v1 lt v2}" var="v">
		v1小于v2,${v }<br>
	</c:if>
	<c:if test="${ v2 gt v1}" var="v">
		v2大于于v1,${v }<br>
	</c:if>
	<c:if test="${ empty v3}">
		v3为空<br>
	</c:if>
	<li>测试条件控制标签c:choose,c:when,c:otherwise</li><br>
	<c:choose>
		<c:when test="${v1 lt v2}">
			v1小于v2<br>
		</c:when>
	</c:choose>
	<c:choose>
		<c:when test="${v1 gt v2}">
			v1小于v2<br>
		</c:when>
		<c:otherwise>
			v2大于等于v1<br>
		</c:otherwise>
	</c:choose>
	<p>
	<li>测试循环控制标签c:forEach</<li>><br>
	<table border="1">
		<tr>
			<td>姓名</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<c:choose>
			<c:when test="${empty userlist}">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${userlist}" var="usr">
					<tr>
						<td>${usr.username }</td>
						<td>${usr.age }</td>
						<td>${usr.group.name }</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>	
	<p>
	<li>测试循环控制标签c:forEach,varstatus</<li>><br>
	<table border="1">
		<tr>
			<td>姓名</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<c:choose>
			<c:when test="${empty userlist}">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${userlist}" var="usr" varStatus="v">
					<c:choose>
						<c:when test="${v.count % 2 == 0 }">
							<tr bgcolor="red">
						</c:when>
						<c:otherwise>
							<tr>
						</c:otherwise>
					</c:choose>
						<td>
							<c:out value="${usr.username}"/>
						</td>
						<td>
							<c:out value="${usr.age}"/>
						</td>
						<td>
							<c:out value="${usr.group.name}"/>
						</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>	
	<p>
	<li>测试循环控制标签c:forEach,begin,end,step</<li>><br>
	<table border="1">
		<tr>
			<td>姓名</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<c:choose>
			<c:when test="${empty userlist}">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${userlist}" var="usr" begin="2" end="8" step="2">
					<tr>
						<td>${usr.username }</td>
						<td>${usr.age }</td>
						<td>${usr.group.name }</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>	
	<p>
	<li>测试循环控制标签c:forEach,普通循环</li><br>
	<c:forEach begin="1" end="5">
		a<br>
	</c:forEach>
	<p>
	<li>测试循环控制标签c:forEach,输出map</li><br>
	<c:forEach items="${mapValues}" var="v">
		${v.key }=${v.value }<br>
	</c:forEach>
	<p>
	<li>测试循环控制标签c:fortokens</li><br>
	<c:forTokens items="${tokenstr}" delims="," var="v">
		${v }<br>
	</c:forTokens>
	<p>
	<li>测试c:catch</li><br>
	<%
		try {
			Integer.parseInt("abcde");
		}catch(Exception e) {
			out.println(e.getMessage());
		}	
	 %>
	 <p>
	 <c:catch var="e">
	 	<%
	 		Integer.parseInt("abcde");
	 	 %>
	 </c:catch>
	 ${e }<br>
	 <p>
	 <li>测试c:import</li><br>
	 <c:import url="http://localhost:8080/struts_login"/>
	 <p>
	 <li>测试c:url,c:param</li><br>
	 <c:url value="http://localhost:8080/drp/user_maint.jsp" var="vurl">
	 	<c:param name="username" value="Jack"/>
	 	<c:param name="age" value="18"/>
	 </c:url>
	 ${vurl }<br>
	 <p>
	 <li>测试c:redirect</li><br>
	 <c:redirect context="/struts_login" url="/index.jsp"/>



	 <h1>测试EL表达式</h1>
	<hr>
	<li>普通字符串,EL表达式的使用方法$和{},EL表达式的隐含对象pageScope/requestScope/sessionScope/applicationScope等等
		如果为指定scope,它的搜索顺序是pageScope~applicationScope
	</li><br>
	hello(jsp脚本):<%=request.getAttribute("hello") %><br>
	hello(el表达式):${hello }<br>
	hello(el表达式,scope=request):${requestScope.hello }<br>
	hello(el表达式,scope=session):${sessionScope.hello }<br>
	<p>
	<li>输出结构,使用.进行导航,也称存取器</li><br>
	姓名:${user.username }<br>
	年龄:${user.age }<br>
	所属组:${user.group.name }<br>
	<p>
	<li>输出map,使用.进行导航</li><br>
	mapvalues.key1:${mapvalues.key1 }<br>
	mapvalues.key2:${mapvalues.key2 }<br>
	<p>
	<li>输出数组,采用[]</li><br>
	strarray[2]:${strarray[2] }<br>
	<p>
	<li>输出对象数组,采用[]</li><br>
	users[6].username:${users[6].username }<br> 
	<p>
	<li>输出list中指定的元素,采用[]</li><br>
	userlist[8].username=${userlist[8].username }<br>
	<p>
	<li>EL表达式对运算符的支持</li><br>
	1+1=${1+1 }<br>
	10/5=${10/5 }<br>
	10 div 5=${10 div 5 }<br>
	10%3=${10%3 }<br>
	10 mod 3=${10 mod 3}<br>
	<!-- 
		==/eq
		!=/ne
		>/gt
		</lt
		<=/le
		>=/ge
		&&/and
		||/or
		!/not
		//div
		%/mod
		.....
	 -->
	 <p>
	 <li>测试empy</li><br>
	 value0:${empty value0 }<br>
	 value1:${empty value1 }<br>
	 value2:${empty value2 }<br>
	 value3:${empty value3 }<br>
	 value3:${!empty value3 }<br>
------------------
	<h1>测试格式化标签库</h1>
	<hr>
	<li>格式化日期</li><br>
	today(default):<fmt:formatDate value="${today}"/><br>
	today(type="time"):<fmt:formatDate value="${today}" type="time"/><br>
	today(type="date"):<fmt:formatDate value="${today}" type="date"/><br>
	today(type="both"):<fmt:formatDate value="${today}" type="both"/><br>
	today(dateStyle="short"):<fmt:formatDate value="${today}" dateStyle="short"/><br>
	today(dateStyle="medium"):<fmt:formatDate value="${today}" dateStyle="medium"/><br>
	today(dateStyle="long"):<fmt:formatDate value="${today}" dateStyle="long"/><br>
	today(dateStyle="full"):<fmt:formatDate value="${today}" dateStyle="full"/><br>
	today(pattern="yyyy/MM/dd HH:mm:ss"):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss"/><br>
	today(pattern="yyyy/MM/dd HH:mm:ss"):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="vdate"/><br>
	vdate:${vdate }<br>
	<p>
	<li>格式化数字</li><br>
	n(default):<fmt:formatNumber value="${n}"/><br>
	n(maxFractionDigits="5"):<fmt:formatNumber value="${n}" maxFractionDigits="5"/><br>
	n(pattern="###,###.######"):<fmt:formatNumber value="${n}" pattern="###,###.######"/><br>
	n(pattern="###,###.000000"):<fmt:formatNumber value="${n}" pattern="###,###.000000"/><br>
	n(groupingUsed="true"):<fmt:formatNumber value="${n}" groupingUsed="true"/><br>
	n(groupingUsed="false"):<fmt:formatNumber value="${n}" groupingUsed="false"/><br>
	n(type="currency"):<fmt:formatNumber value="${n}" type="currency"/><br>
	n(type="currency" currencySymbol="$"):<fmt:formatNumber value="${n}" type="currency" currencySymbol="$"/><br>
	n(type="percent"):<fmt:formatNumber value="${p}" type="percent" maxFractionDigits="2"/><br>
---------------------------------------

http://archive.cnblogs.com/a/2048653/

 

 

gae 使用jstl 添加jstl.jar  standard.jar

 

使用

<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

jsp中

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值