Session中的使用
//java代碼將對象存入session httpSession.setAttribute("CURR_USER",userinfoList.get(0)); //jsp中使用session中的對象 ${sessionScope.CURR_USER.username}
JS中使用EL表達式
var str = '${str}' ;
var str = '${obj.屬性名}';
只可以再jsp頁面的<script></script>中使用,外部引入的js文件中不能使用。
但是事實情況呢有時候需要在某些插件中js使用,如果是開發時候可以用傳參數之類,用隱藏域之類的.
當開發完畢的時候(比如項目分離),之前js文件中寫死的配置就會出問題,為了簡單可以使用這個方法支持EL表達式
將.js文件改為.jsp,這樣可以讓容器解析里面的el表達式
然后引用再用 <script src="/${appName}/commons/jq22.jsp"></script> 告訴引入的文件是個script.
但是把.js文件改成.jsp的話,長時間以后下一個維護人員會很困惑這是什么東東,所以可以采用這個方法
在一個公用的外部.js文件中配置一個全局變量.在插件中的.js文件中使用這個全局變量(當然.jsp文件要同時引入這兩個文件)
EL與JSTL標簽聯用
引用
jsp文件引入
JSTL 1.0 聲明: <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> JSTL 1.1 之后聲明: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
c標簽
使用c:標簽
<!-- 設置值 --> <c:set var="salary" scope="session" value="${2000*2}"/> <!-- if語句 --> <c:if test="${salary > 2000}"> <p>工資: <c:out value="${salary}"/><p> </c:if> <!-- choose語句 --> <c:choose> <c:when test="${salary <= 0}"> 太慘了。 </c:when> <c:when test="${salary > 1000}"> 不錯的薪水,還能生活。 </c:when> <c:otherwise> 啥都沒有。 </c:otherwise> </c:choose>
if標簽判斷為空
<c:if test="${!empty user.name}">user的name屬性不為空時顯示</c:if>
<c:forEach>標簽
集合中的對象
<c:forEach items="${sessionScope.userList}" var="userItem" varStatus="userStatus"> ${userItem.鍵名} </c:forEach>
c:forTokens標簽
<c:forTokens>標簽通過指定分隔符將字符串分隔為一個數組然后迭代它們
<c:forTokens items="google,baidu,biying" delims="," var="engine"> <c:out value="${engine}"/><p> </c:forTokens>
JSTL提供format標簽
el表達式直接顯示日期格式化問題.
<!--1.首先引入標簽庫--> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!--2.在需要顯示日期的地方調用fmt標簽即可--> <fmt:formatDate value="${order.submit_time}" pattern="yyyy-MM-dd HH:mm:ss"/>
