<%@ page language="java" pageEncoding="UTF-8" isELIgnored="false"%>
EL表達式:
截取字符串:
1
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
2
${fn:substring(notification.note,fn:indexOf(notification.note, "當")+1,fn:indexOf(notification.note, "的"))}
替換字符串
${fn:replace(picture.picUrl,".","_min.")}
迭代Map
<c:forEach items="${resultMap}" var="entry" varStatus="mapIndex">
<c:forEach var="tp" items="${entry.value}" varStatus="index">
<c:if test="${fn:contains(entry.key,'包含內容')}"> 字符串包含檢測
<c:set var="picUrl" value="${tp}"></c:set>
<li>
<a href="<%=basePath%>cityplans/photo.jsp?picUrl=${tp}" target="photo" οnclick="changeType('${tp}');" class="t1">${entry.key}${index.count}</a>
</li>
</c:if>
</c:forEach>
</c:forEach>
判斷字符串:
1<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2
<c:forEach var="notification" items="${requestScope.notificationList}">
<c:when test="${requestScope.notificationList[0].type eq 'agentinvite'}">
<c:forEach>
格式化日期
1
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
2
<fmt:formatDate value="${notification.addTime}" type="both"/>
取得url參數
$(param.name)
操作符
JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:
术语 | 定义 |
---|---|
算术型 | +、-(二元)、*、/、div、%、mod、-(一元) |
逻辑型 | and、&&、or、||、!、not |
关系型 | ==、eq、!=、ne、、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。 |
空 | 空操作符是前缀操作,可用于确定值是否为空。 |
条件型 | A ?B :C。根据 A 赋值的结果来赋值 B 或 C。 |
= = 或 eq | 等于 |${ 5 = = 5 } 或 ${ 5 eq 5 } | true
!= 或 ne | 不等于 |${ 5 != 5 } 或 ${ 5 ne 5 } | false
< 或 lt | 小于 |${ 3 < 5 }或 ${ 3 lt 5 } | true
> 或 gt | 大于 |${ 3 > 5 }或 ${ 3 gt 5 } | false
<= 或 le | 小于等于 |${ 3 <= 5 }或 ${ 3 le 5 } | true
>= 或 ge | 大于等于 |${ 3 >= 5 }或 ${ 3 ge 5 } | false
empty运算符
Empty运算符主要用来判断值是否为null或空的,例如:
${ empty param.name }
<%
pageContext.setAttribute("username", null);
pageContext.setAttribute("password", "");
pageContext.setAttribute("title", "The Way Of Java");
pageContext.setAttribute("time", new java.util.Date());
%>
${empty username}<br><!-- true -->
${empty password}<br><!-- true -->
${empty title}<br><!-- false -->
${empty time}<br><!-- false -->
struts2表達式
看到这一差别才轰然醒悟过来,原来是在 Servlet 2.4 与 Servlet 2.3 的差别。Tomcat 5.0.28 是能支持 Servlet2.4/JSP 2.0 的,JSP 2.0 是可以用 EL 表达式,而之前版本是不行的,正式这一声明指示着容器应如何解析和编译 JSP 的,而产生未曾意料到的结果。
对于取pageContext、parameters、request、session、application 等处的属性值(假如有 name 属性)时我们用的 EL 表达式分别是:
${pageScope.name}、${param.name}、{$requestScope.name}、{$sessionScope.name}、{$applicationScope.name}
那么对应的 OGNL 的解决方案分别是:
<s:peroperty value="#attr.name"/>
<s:property value="#parameters.name"/>
<s:property value="#request.name"/>
<s:property value="#session.name"/>
<s:property value="#application.name"/>
<s:textfield name="name" value="%{#parameters.name}"/>
JSP的3种方式实现radio ,checkBox,select的默认选择值
1
<td width="27"><input type="radio" name="state" value="AL" 〈%if(state.equal("AL")) out.print("checked")%〉/>
2
<td width="27">
<c:choose>
<c:when test="${state=='AL'}">
<input type="radio" name="state" value="AL" checked="checked"/>
</c:when>
<c:otherwise>
<input type="radio" name="state" value="AL" />
</c:otherwise>
</c:choose>
<c:choose>
<td width="27">
3
<td width="27"><input type="radio" name="state" value="AL" ${(state=='AL')?'checked="checked"' : ''}/>