首页 > 代码库 > 常用的EL表达式和JSTL
常用的EL表达式和JSTL
EL表达式:
打印接受来的参数:
${ param.VarName }
验证接受来的参数是否为NULL:
${ empty param.VarName }
EL内置的与存储范围有关几个对象
类型为java.util.map
pageScope
requestScope
sessionScope
applicationScope
与输入有关的隐含对象
用来取得用户的请求参数:
param
paramValues
EL中内置的其它隐含对象:
cookie
header
headerValues
iniParam
pageContext
EL通过.和[]运算符来存取数据
EL作为存取器访问JavaBean、Map、对象数组及List中的数据
JSTL标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/x"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/fn"%>
输出变量:
<c:out value="PrintContentValue" />
定义变量:
<c:set var="variable" value="varValue" scope="varScope">
删除变量
<c:remove var="variable" scope="varScope">
没有本体内容的判断语句:
<c:if test="${ 3 > 4 }" var="result" scope="page" />
有本体内容的判断语句:
<c:if test="${ 3 < 4 }" var="rs" scope="page"> <c:out value="YES" /> </c:if>
JSTL标签中的if-else语句:
<c:choose> <c:when test="${ 3 > 4 }"> <c:out value=" 3 > 4 YES"></c:out> </c:when> <c:otherwise> <c:out value=" 3 > 4 NO"></c:out> </c:otherwise> </c:choose>
指定语句循环次数:
<c:forEach var="number" begin="1" end="5"> <c:out value="${ number }"></c:out> </c:forEach>
遍历集合对象的成员:
<c:forEach var="str" items="${ names }"> <c:out value="${ str }"></c:out> </c:forEach>
分隔字符串,在使用多个分隔符时使用“;”隔开
<% String str = "A-B-C"; session.setAttribute("str", str); %> <c:forTokens items="${ str }" delims="-" var="item"> <c:out value="${ item }"></c:out> </c:forTokens>
JSTL标签强大的import功能:
<c:import url="IM.txt" charEncoding="UTF-8"></c:import> <c:import url="IM.jsp" charEncoding="UTF-8"></c:import> <c:import url="IM.html" charEncoding="UTF-8"></c:import> <c:import url="http://www.baidu.com" charEncoding="GBK"></c:import> <c:import url="META-INF/MANIFEST.MF" charEncoding="UTF-8"></c:import>
同一服务器上,不同站点
server.xml中配置
<Context path="/testProtect" docBase="d:\tomcat6\testProtect" reloadable="true" crossContext="true"></Context> <Context path="/jstlProtect" docBase="d:\tomcat6\jstlProtect" reloadable="true" crossContext="true"></Context> <c:import url="IM.html" charEncoding="UTF-8" context="/testProject"></c:import> <c:import url="IM.html" charEncoding="UTF-8" var="str" scope="session"></c:import>
把其他文件的内容以String的形式导入进来,并保存在变量var中,属性scope用以指定变量范围。
向导入的JSP页面传递参数:
import.jsp <c:import url="IM.jsp" charEncoding="UTF-8"> <c:param name="username" value="root"></c:param> <c:param name="password" value="admin"></c:param> </c:import>IM.jsp <c:out value="${ param.username }" /> <c:out value="${ param.password }" />
相当于链接地址 http://www.baidu.com/s?wd=java:
<c:url value="http://www.baidu.com/s" var="variable" scope="session" > <c:param name="wd" value="java" /> </c:url>
页面跳转
执行后,URL为:http://localhost:8080/jstlProject/redirectResult.jsp?result=success
redirect.jsp <c:redirect url="redirectResult.jsp"> <c:param name="result" value="success"></c:param> </c:redirect> redirectResult.jsp <c:out value="${ param.result }"></c:out>
建立数据库链接:
<sql:setDataSource url="jdbc:mysql://localhost:3306/jstl" driver="com.mysql.jdbc.Driver" user="root" password="admin" var="dbsource" scope="session"/>
数据库更新操作
<sql:update> insert into person(id, username, password, name) values(null, ‘test‘, ‘123456‘, ‘测试‘); </sql:update>
数据查询操作 将查询结果存入result对象中
<sql:query var="result"> select * from person; </sql:query>
遍历查询结果
<c:forEach items="${ result.rows }" var="row"> <tr> <td><c:out value="${ row.id }" /></td> <td><c:out value="${ row.username }" /></td> <td><c:out value="${ row.password }" /></td> <td><c:out value="${ row.name }" /></td> </tr> </c:forEach>
设置数据语句的参数
<c:set var="uid" value="5"></c:set> <sql:query var="abc"> select * from person where id = ?; <sql:param value="${ uid }"></sql:param> </sql:query>
事务处理安全机制
<sql:transaction> <sql:update> </sql:update> <sql:query> </sql:query> </sql:transcation>
forEach循环体
<c:forEach var="number" begin="1" end="5"> <c:out value="${ number }"></c:out> </c:forEach>