输出
<c:out value="xxx"></c:out>
默认输出的是request中拥有的变量,为什么不是pageContext(当前页面)下面解释!
<c:out value="${userName}"></c:out>
获取session中
<c:out value="${sessionScope.userName}"></c:out>
以下只介绍request的情况,对于其session作用域的,只要在前面加个sessionScope就可以了。application作用域类似。
获取javabean属性
<c:out value="${user.userName}"></c:out>
遍历:
遍历数组
int numbers = {1,2,3,4};
<c:forEach items="${numbers }" var="number" varStatus="indexs">
内容:<c:out value="${number}"></c:out>
当前元素在数组中的位置::<c:out value="${indexs.index}"></c:out>
</forEach>
var 属性指代数组中的元素,varStatus顾名思义是记住一些遍历时候的状态信息,可以获取当前是第几个元素,已经循环了几个元素,第一个元素是什么之类的....
遍历list,
List<User> users = new ArrayList<User>();
<c:forEach items="${users}" var="user" varStatus="indexs">
用户名:<c:out value="${user.userName}"> </c:out>
</forEach>
遍历map
<c:forEach items="${map}" var="mymap" >
<c:out value="${mymap.key}" />
<c:out value="${mymap.value}" />
</c:forEach>
特别的:获取集合类第某个元素的代码:
<c:out value="${intArray[0]"}</c:out>
和数组的操作方式一样!list和map都是同样的,不存在get(index)这种东西。
如果要指定循环开始的index和步长,代码是这样
<c:forEach items="${list}" var="option" begin="10" end="100" step="5">
</c:forEach>
条件判断
if标签是这样
<c:if test="条件">
</c:if>
if else 标签是这样
<c:choose>
<c:when test="条件">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
运算符号 equals换成eq,其他的不变!
比如判断user的userName为指定的值
<c:if test="${"supben" eq user.userName}">
</c:if>
另有一个empty运算符,比如判断list是否为空,注:判断字符串为空也用这个
if(users!=null || users.size()>0){
}
<c:if test="${!(empty users)}">
</c:if>
至于嵌套,list嵌套map,然后嵌套javabean。只要你熟知上面的语法规则。也是一样的。这里给出一个list签到map嵌套javabean的例子
List<Map<String,User>> maps= new ArrayList<Map<String,User>>();
<c:forEach items="${maps}" var="map">
<c:forEach items="${map}" var="mymap">
<c:out value="${mymap.value.userName}">
</c:forEach>
</c:forEach>
fn函数
fn函数库带了很多的方法。也不用刻意去记,几乎和java里面的名字是一摸一样的,比如对于String类,甚至是完全照搬,比如indexOf,replace,split,trim等。可以望文生义放心的直接来使用。
下面给出fn函数试用的一个例子,获取集合类(包括数组,list,map等等)的长度
<c:out value="${fn:length(list)}"></c:out>
另外:介绍一下<c:set>和<c:remove>标签。假如,以上面的嵌套为例,假如我得到了list的第x个map的"supben" key 所对应的user的userName 为supben。
我在下面还要使用用来做文档的footer,我总不能用一遍遍历判断一次吧。这时候<c:set>标签就派上用场了
<c:set value="xxxxxxxx" var="footer">
然后在使用的地方这么调用
<c:out value="${footer}"></c:out>
<c:remove>,你用完不想要了。用下面的代码移除
<c:remove var="footer"></c:remove>
注意:这两个标签都有scope属性,如果是把变量添加在request中,只需加上scope="request"。默认作用域是pageContext(当前页面中)。
这就带来了一个问题,就是本文一开始提到的,假如,在action(request)中有一个变量叫footer,我在页面中也用set标签定义了一个footer,那么我用${footer}取出来的结果是什么?答案是用set标签定义的!因为在mvc中,jsp极少自己定义变量极,而且你也可以完全可以控制做到用不同的变量名,所以el表达式默认的前缀对象是request!
反而移除是不会有问题。接着上面的步骤,我们在set 打印之后remove footer,再次输出,我们看到打出的值变成了request里面的那个footer!因为remove默认移除的是page中的变量,如果在remove标签里加个scope="session"呢?那么打印的结果是当前页面刚刚定义的footer!
综上:介绍了显示,操作session和request,运算符,条件语句,循环语句。变量的定义和移除等。
这就基本能替换掉jsp页面所需要的java代码。
分享到:
相关推荐
**JSTL的基础使用**主要包括以下几个方面: 1. **引入JSTL库**:首先需要在项目的类路径下添加`jstl.jar`和`standard.jar`两个库文件,它们提供了JSTL的实现。 2. **导入JSTL标签库**:在JSP页面中通过`...
JSTL基础j讲义ppt
精彩的JSTL基础讲义ppt
JSTL,全称JavaServer Pages Standard Tag Library,是由JCP(Java Community Process)制定的一个标准规范,旨在为Java Web开发者提供一套通用的标准标签库。它的出现是为了改善Web应用程序的可读性、维护性和易用...
JSTL基础知识详解,开发环境配置及标签使用等基础知识。
在"第五章+JSTL基础.ppt"中,我们可以预见到会介绍JSTL的基础概念和核心组件。这通常包括以下几个方面: 1. **JSTL简介**:讲解JSTL的作用,以及它如何简化JSP页面的代码,减少Java脚本的使用。 2. **JSTL核心标签库...
1 jsp(java server page):是服务器端运行的JSP本身就是一个文档,不仅可以包含静态的HTML代码, 也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求......
### JSTL基础知识 #### 1. JSTL的出现背景 在JSTL出现之前,Servlet、JSP和JavaBeans是标准的Web应用程序开发技术。JSP页面通常会通过`<jsp:useBean>`标签来调用JavaBeans以执行业务逻辑。然而,这种做法存在一些...
### JSTL in Action #### 关于本书 《JSTL in Action》是一本全面介绍JavaServer Pages Standard Tag Library...无论是希望了解JSTL基础知识还是寻求更高级的应用技巧,《JSTL in Action》都能提供宝贵的指导和支持。
jstl基本知识,基本语法,欢迎大家下载
- JSTL基础介绍:解释JSTL的概念和目标,以及它如何与JSP和Servlet协作。 - 核心标签的使用:演示如何在JSP页面中使用`<c:if>`、`<c:forEach>`等核心标签。 - JSTL与EL的结合:讲解如何通过EL表达式获取和设置数据,...
1. **JSTL基础**:了解JSTL的构成,包括Core、XML、Functions、Format和JDBC等核心标签库,以及它们各自的作用。 2. **JSTL标签**:如`<c:if>`、`<c:forEach>`、`<fmt:formatDate>`等,学习如何使用这些标签进行...
JSTL1.1是针对Tomcat5.x版本设计的,它在JSTL1.0的基础上进行了一些改进和增强。这个版本引入了对JSP 2.0规范的支持,包括对EL (Expression Language) 的完全支持。EL是一种轻量级的脚本语言,用于在JSP页面中表达和...
1. **Core标签库**:这是JSTL最基础的部分,包含了一系列处理页面流程控制、条件判断、迭代等任务的标签。例如`<c:if>`用于条件判断,`<c:forEach>`用于遍历集合,`<c:choose>`、`<c:when>`和`<c:otherwise>`用于多...
### JSTL 标签库基础与实例解析 #### JSTL 标签库简介 JSTL(JavaServer Pages Standard Tag Library)是为简化JavaServer Pages (JSP) 页面开发而设计的一组标准标签库。它提供了一系列的标签来执行常见的页面处理...
【JSTL与EL基础详解】 JSTL(JavaServer Pages Standard Tag Library)和EL(Expression Language)是Java Web开发中的两个重要组件,主要用于增强JSP页面的功能和可读性。JSTL是一组标签库,提供了处理常见任务如...
Core库是JSTL中最基础的部分,包含了很多用于控制流程、处理URL、输出内容等的标签。例如: - `<c:if>`:条件判断 - `<c:choose>`、`<c:when>`、`<c:otherwise>`:多条件选择 - `<c:forEach>`:循环遍历 - `<c:set>`...