-----------------------------------
<%@ 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" %>