EL表达式/JSTL
EL表达式分类
1 算数表达式
2 条件表达式
3 字符串运算表达式
4 JSP标签函数
EL访问数组的语法:${ 数组变量名[ 序号] }
EL访问java.utl.Map的语法: ${ Map对象名.Key }
EL访问javaBean的语法:${ Bean名称.属性名称}
除了使用标签定义的变量JavaBean变量外,EL中还包括许多预先设定好的变量,称为内置变量,其变量名称和对应的类型如下
pageScope java.util.Map
requestScope java.util.Map
sessionScope java.util.Map
applicationScope java.util.Map
param String组成的Map
paramValues String数组组成的Map
header String组成的Map
headerValues String数组组成的Map
Cookie java.util.Map
initParam java.util.Map
pageContext javax.servlet.jsp.PageContext
标签库
JSP的tag包装在标签库里。
将标签库引进页面的语法是<%@ taglib prefix="前缀名称" uri="标签库URL" %>
java standard tag library(JSTL) 标准化的扩展标签库
JSTL扩展了内置标签库的内容
安装JSTL
在http://tomcat.apache.org处 下载JSTL
下载后解压文件
将解压后的子目录lib中的standard.jar 和jstl.jar 复制到站点根目录\WEB-INF\lib目录里,如果lib目录下没有,则创建它
在页面中使用JSTL
JSTL的标签在使用前必须先将标签库引进页面中,使用<%@ taglib %>指令将需要使用到的某标签库引进,如:
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld"%>
<%@ taglib prefix="c" uri = http://java.sun.com/jsp/jstl/core%>
JSTL 标签中一个<c:choose>,与java中的if else作用相同
<c:choose>
<c:when test="${item.useFlag == 'Y' }" >
<td width="20"><input type="checkbox" name="box" checked="checked" id="box${stat.index }" />
</td>
</c:when>
<c:otherwise>
<td width="20"><input type="checkbox" name="box" id="box${stat.index }"/>
</td>
</c:otherwise>
</c:choose>
JSTL标签中的一个
<c:forEach var="line" items="${userDto.line }">
<c:if test="${factory.displayLineCd == line.displayLineCd}">
${line.companyCd }
</c:if>
</c:forEach>
JSTL中<c:forEach varStatus="status">属性值问题
<c:forEach varStatus="status">中 varStatus的属性值
${status.index } 输出行号,从0开始。
${status.count } 输出行号,从1开始。
current 当前这次迭代的项
index 当前这次迭代从0开始的迭代计数
count 当前这次迭代从1开始的迭代计数
first 用来表明当前这轮迭代是否为第一次迭代的标志
last 用来表明当前这轮迭代是否为最后一次迭代的标志
begin begin属性值
end end属性值
step step属性值