EL and JSTL


EL表达式:
${ param.VarName }
打印接受来的参数

${ empty param.VarName }
验证接受来的参数是否为NULL


pageScope
requestScope
sessionScope
applicationScope
EL内置的与存储范围有关几个对象
类型为java.util.map

param
paramValues
与输入有关的隐含对象
用来取得用户的请求参数

cookie
header
headerValues
iniParam
pageContext
EL中内置的其它隐含对象

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>
有本体内容的判断语句

<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>
JSTL标签中的if-else语句

<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用以指定变量范围。

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 }" />
向导入的JSP页面传递参数

<c:url value="http://www.baidu.com/s" var="variable" scope="session" >
<c:param name="wd" value="java" />
</c:url>
相当于链接地址 http://www.baidu.com/s?wd=java

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>
页面跳转
执行后,URL为:http://localhost:8080/jstlProject/redirectResult.jsp?result=success


http://java.sun.com/jsp/jstl/sql


<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>
数据库更新操作

<sql:query var="result">
select * from person;
</sql:query>
数据查询操作 将查询结果存入result对象中

<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>
事务处理安全机制

 


^_^……^_^

原文地址:https://www.cnblogs.com/ljmatlight/p/2761049.html