建议使用JSTL标签库,是J2EE标准。可以取代Struts的Bean、Logic,但无Struts的HTML标签功能。
1,打印输出 ${} 与 <c:out> :
${}
${userInfo.userSys.userID}
输出request.getAttribute(“userInfo”).getUserSys().getUserID();
如何取值:
默认是从request(page)中取,如果request中没有名为userInfo的对象则从session中取,session中没有则从application(servletContext)中取。
未经转义直接输出的:
如userName=” <br/> “,则 ${userName}直接输出 <br/>
判断输出:
${ (userInfo.name=="张海") ? "Right的" : "Wrong" }
访问参数:
${param.id }
访问cookie:
${cookie.JSESSIONID.value }
相应的还有下面的隐含对象
pageContext:当前JSP页面上下文,相当于pageContext.getAttribute()
initParam:上下文初始参数
param:请求的参数,相当于request.getParameter()
header:请求的首部内容
cookie:请求发过来的cookie内容
applicationScope:application域,相当于application.getAttribute()
sessionScope:session域
requestScope:request域
pageScope:page域
<c:out>
<c:out value="${userName}" default="guest"/>
本语句的作用是转义。
即对value内容进行转义,如userName=” <br/> “
则 ${userName}输出 <br/>
<c:out value="${userName}"/> 输出 <br/>
也可直接输出字符串
<c:out value="a < b >"/> 输出 a < b >
default是指找不到userName对象时的显示。
2,判断 与 选择
<c:if test="${count > 78}">
tt
</c:if>
<c:if test="${success && right}">
tt
</c:if>
关系操作符:
== , != , < , > , <= , >=
逻辑操作符:
&& , || , !
if标签无else标签,所以用下面的choose代替
<c:choose>
<c:when test="${userInfo.userSys.status==111}">
tt
</c:when>
<c:otherwise>
ff
</c:otherwise>
</c:choose>
选择:
<c:choose>
<c:when test="${userInfo.userSys.status==111}">
tt
</c:when>
<c:when test="${userInfo.userSys.status==222}">
ff
</c:when>
<c:otherwise>
ff
</c:otherwise>
</c:choose>
3,循环
forEach标签
// resultList为request中的List对象、Set对象或Set对象
<c:forEach items="${resultList}" var="user">
<c:out value=”${user.name}”/>
</c:forEach>
// 遍历
// 以下将依次输出 1,2,3,4,5
<c:forEach var=”x” begin=”1” end=”5”>
<c:out value=”${x}”/>,
</c:forEach>
// 以下依次输出: a token b token c token d token
<c:forTokens items="a:b:c:d" delims=":" var="token">
<c:out value="${token}"/> <c:out value="token"/>
</c:forTokens>
4,格式化
format可以格式化数字和日期对象
JSP前面要引用 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
数字:
<fmt:formatNumber value="12" type="currency" pattern="0.00元"/>
将显示 12.00元
<fmt:formatNumber value="12" type="currency" pattern=".0#元"/>
将显示 12.0元
<fmt:formatNumber value="1234567890" type="currency"/>
将显示 ¥1,234,567,890.00 (那个钱的符号和当前web服务器的 locate 设定有关)
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/>
将显示 123,456.79
<fmt:formatNumber value="12" type="percent" />
将显示 1,200%
type 可以是currency、 number、 和percent。
日期
JSP前面要引用 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
userInfo.birthday为request中一Date对象
<fmt:formatDate value="${userInfo.birthday}" pattern="yyyy-MM-dd HH:mm:ss"/>
1996-09-29 19:09:44
<fmt:formatDate value="${userInfo.birthday}" pattern="G yyyy年MM月dd日 E"/>
公元 1996年09月29日 星期日
<fmt:formatDate value="${userInfo.birthday}" pattern="a HH:mm:ss.S z"/>
下午 19:09:44.0 CST