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"/>