表达式语言和JSTL -JSP2.0应用教程学习笔记

表达式语言EL
1. ${username}省略了范围(从小到大查找)。省略了import语句,省略bean标签,省略getter和setter方法。
2.空值代替异常。
3.表达式可出现在标记正体,也可出现在属性值中。
4.${sessionScope.username}
5.EL关键字 and,or,not,eq,ne,gt,lt,ge,le(大于等于,小于等于),true,false,instanceof,null,empty,div(除),mod(模).
6.点号和方括号可混合使用。但方括号可包含特殊字符,如${customer["customer-id"]},而且支持变量,如${sessionScope.customer[info]}.
7.除法中,除以0是无穷大而不是错误。
8.empty判断是否是空引用,空容器(包括空数组,空字符串)。
9.类型自动转换。
如${param.usercount+1}中,Object-》String-》int。
空引用转为空字符串,转为0.
10.EL中11个隐含对象,分别为pageContext,param,paramValues(对应多个值),header,headerValues,cookie,initParam(Servlet上下文初始化参数名值对),pageScope,requestScope,sessionScope,applicationScope.
如${pageContext.session.id}输出当前会话id。
11.客户端HTTP请求头信息
${header.host}
${header.accept}
${header["accept-language"]}
${header["accept-encoding"]}
${header["user-agent"]}
${header["connection"]}
12.一个cookie是一对名值。
${cookie.cookie名.value}
${cookie.JSESSIONID.name},${cookie.JSESSIONID.name}.
13.${paramValues.multi[1]}
在输入网址时带上参数xxx.jsp?multi=bjtu&multi=njtu
========================================================
JSTL基础
1.<c:out value="${customer.address.street}" />
默认忽略标记,所以可以value="<h2>hello</h2>.
可以设置默认值,当结果为空时,default="默认值",标记本体里的也是默认值。
配合其他标签,可使得不支持默认值的标签拥有默认值。
如下:
<fmt:formatDate var="dateVar" value="${dueDate}" />
<c:out value="${dateVar}" default="没有指定日期" />
2.<c:set var="变量名" value="值" />
也可以
<c:set var="变量名">
<c:out value="值1"/>
<c:out value="值2"/>
</c:set>
标记本体中合并作为值赋给变量。变量默认页面有效。可显式指定范围。
还可以
<c:set target="map或bean对象名" property="属性名" value="属性值" />
如果是map对象,值为null会被移除。
3.<c:remove var="变量名" scope="范围" />移除变量。
4.<c:catch>嵌入其他标记</c:catch>
<c:catch var="变量名" >,变量用于捕获异常,只能页面有效。
5.<c:if test="条件">其他语句</c:if>
可加个var属性储存条件真假值。
6.
<c:choose>
<c:when test="条件1">语句</c:when>
<c:when test="条件2">语句</c:when>
<c:otherwise>语句</c:otherwise>
<c:choose>
依次执行,只执行其中一个。
7.<c:forEach var="循环变量" begin="初始值" end="终值">语句</c:forEach>
或者<c:forEach var="元素临时变量" items="元素容器">语句</c:forEach>,还可以加上begin,end,step属性,指定开始位置,结束位置,及步长。
还有一个varStatus属性对象,它有index,count,first,last属性,分别表示当前元素索引,元素总数,是否是第一个元素,是否是最后一个元素。
8.<c:forTokens items="长字符串" delims="分隔符">语句</c:forTokens>
还可以有var属性存储当前字串,varStatus,begin,end,step属性。
其中delims="|,"表示同时用|和,分割,而不是用|,来分割。
9.<c:url var="变量名" value="/index.jsp" />重写完整URL,如果浏览器不支持cookie,还会自动包含会话id,如
http://localhost:8080/hello/index.jsp?jsessionid=D66669000897867987889C90
还可以指向同一个JSP容器的其他应用的URL,
<c:url var="变量名" value="/index.html" context="/jsp-examples" />
还可以指定参数。
<c:url var="变量名" value="/my.jsp">
<c:param name="id" value="1234565"/>
<c:param name="type" value="String"/>
</c:url>
可以嵌入到<a>标签中。
<a href="<c:url value="/index.jsp" />">这里是链接</a>
10.<c:import>
jsp:import只能引入同一容器的资源,而它还可以引入其他服务器的数据。另外它还可以把引入的内容保存到String或Reader对象中。
<c:import url="/WEB-INF/web.xml" var="url" />
<pre><c:out value="${url}" /></pre>
或者<c:import url+"/data.xml" varReader="dataReader" scope="session"/>
11.<c:redirect url="网址" context="上下文"/>设置context属性可以指向其它web应用。
还可以
<c:redirect url="网址" context="上下文" />
<c:param name="id" value="123456" />
</c:redirect>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值