javaweb part6---jstl以及el表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb part6---jstl以及el表达式相关的知识,希望对你有一定的参考价值。
jstl / Java标准标签库/和EL表达式配合使用
在JSP中取代 Java代码
el表达式运算符号
gt >
lt <
ge >=
le <=
eq ==
ne !=
and &&
or ||
not !
xx.xxx xx["xxx"]
xx?xxx:xxx;
标签库 建议前缀
core/c
xml/x(不在jsp中处理xml文件)
fmt/fmt
sql/sql(不在jsp中操作数据库)
functions/fn
<前缀:标签名 属性名=属性值 属性名=属性值>
核心标签库
<c:out >输出
value 支持el表达式 用来指定输出内容
escapeXml 支持el 默认为true 对特殊符号进行转义的
default 当value为null时,输出default的值;
<c:set>将数据存放到web域中,或者其他的集合之中;
value 支持el. Object
var 不支持el String 指定变量名
scope 不支持el String 指定范围page/request.session.application
target 支持el Object target 和paroperty搭配使用
property 支持el String
<c:set scope="request" var="name" value="rupeng" ></c:set>
scope 和var 搭配使用 request 代表web域范围var代表变量名
通过${requestScope.name}来拿到 value 的值rupeng/
<%Person p1=new Person();
p1.setName("yqw");
request.setAttribute("person", p1);
Person p=new Person();
session.setAttribute("person", p);//将属性名为person的对象P放入request%>
<!-- target 就相当于用findAttribute()依次去四个域中找属性为person的对象.找到既返回-->
<!-- 而对象是Person p.可以设置他的属性property name. 而后取出来 .-->
<c:set target="${sessionScope.person}" property="name" value="jerry" ></c:set>
${person.name}<br/>${sessionScope.person.name}<br/>
<c:remove var="name" scope="request">
删除request这个范围里面,属性名为name的值.
catch 标签
把可能发生异常的代码用<c:catch var="exception"></c:catch>包裹起来
然后调用<c:out ${pageScope.exception}/>输出异常对象 这个对象有三个属性
getMessage/异常信息 getCause/异常原因 getStackTrace/异常的调用数
if 核心标签
test 支持el表达式 Boolean //条件表达式 这个是if标签必须有的.
var 不支持el String 可以声明一个变量接受test的结果
scope 不支持el String 默认存入范围是page、可以指定web域
<c:if test="${age eg 18}" var="rs">
大家都是成年人.
</c:if>
<c:out value="${rs}"/>
这里test为条件表达式 var 表示这个条件表达式的结果
test="empty name" 则代表判断name所指向的对象的属性是否为空.
<c:forEach items="${persons}" var="p">
${p} 就可以输出每一个 persons里面的对象;
</c:forEach>
多个条件表达式
<c:choose>
<c:when test="条件表达式1">
执行代码块
</c:when >
<c:when test-"条件表达式2">
执行代码块
</c:when>
</c:choose> when可以有多个表达式,<c:otherwise>可选
<c:redirect url="/" />
<a href="<c:url value=‘/index.jsp‘>
<c:param name=‘name‘ value=‘999‘></c:param>
<c:param name=‘id‘ value=‘10‘></c:param></c:url>" >超链接</a>
jstl时,注意调用对象的.name 属性时,name的值与对象的私有变量是没有关系的.由get /set方法来决定.
以上是关于javaweb part6---jstl以及el表达式的主要内容,如果未能解决你的问题,请参考以下文章
JAVAWEB开发之Session的追踪创建和销毁JSP详解(指令,标签,内置对象,动作即转发和包含)JavaBean及内省技术以及EL表达式获取内容的使用
JAVAWEB开发之Session的追踪创建和销毁JSP具体解释(指令,标签,内置对象,动作即转发和包括)JavaBean及内省技术以及EL表达式获取内容的使用