`
supben
  • 浏览: 330137 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jstl 基础

阅读更多
输出
<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代码。
0
0
分享到:
评论

相关推荐

    JSTL基础例子,有备注

    **JSTL的基础使用**主要包括以下几个方面: 1. **引入JSTL库**:首先需要在项目的类路径下添加`jstl.jar`和`standard.jar`两个库文件,它们提供了JSTL的实现。 2. **导入JSTL标签库**:在JSP页面中通过`...

    JSTL基础讲义ppt

    JSTL基础j讲义ppt

    JSTL基础讲义ppt2

    精彩的JSTL基础讲义ppt

    JSTL基础 JSTL简介.ppt

    JSTL,全称JavaServer Pages Standard Tag Library,是由JCP(Java Community Process)制定的一个标准规范,旨在为Java Web开发者提供一套通用的标准标签库。它的出现是为了改善Web应用程序的可读性、维护性和易用...

    JSTL基础知识

    JSTL基础知识详解,开发环境配置及标签使用等基础知识。

    jstl各种ppt文档

    在"第五章+JSTL基础.ppt"中,我们可以预见到会介绍JSTL的基础概念和核心组件。这通常包括以下几个方面: 1. **JSTL简介**:讲解JSTL的作用,以及它如何简化JSP页面的代码,减少Java脚本的使用。 2. **JSTL核心标签库...

    jstl基础入门

    1 jsp(java server page):是服务器端运行的JSP本身就是一个文档,不仅可以包含静态的HTML代码, 也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求......

    An Introduction To JSTL

    ### JSTL基础知识 #### 1. JSTL的出现背景 在JSTL出现之前,Servlet、JSP和JavaBeans是标准的Web应用程序开发技术。JSP页面通常会通过`&lt;jsp:useBean&gt;`标签来调用JavaBeans以执行业务逻辑。然而,这种做法存在一些...

    JSTL in Action

    ### JSTL in Action #### 关于本书 《JSTL in Action》是一本全面介绍JavaServer Pages Standard Tag Library...无论是希望了解JSTL基础知识还是寻求更高级的应用技巧,《JSTL in Action》都能提供宝贵的指导和支持。

    jstl基础知识

    jstl基本知识,基本语法,欢迎大家下载

    jstl资料与课件,和所需jar包

    - JSTL基础介绍:解释JSTL的概念和目标,以及它如何与JSP和Servlet协作。 - 核心标签的使用:演示如何在JSP页面中使用`&lt;c:if&gt;`、`&lt;c:forEach&gt;`等核心标签。 - JSTL与EL的结合:讲解如何通过EL表达式获取和设置数据,...

    jstl fun函数 jsp-页面处理

    1. **JSTL基础**:了解JSTL的构成,包括Core、XML、Functions、Format和JDBC等核心标签库,以及它们各自的作用。 2. **JSTL标签**:如`&lt;c:if&gt;`、`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等,学习如何使用这些标签进行...

    jstl1.1和jstl1.0

    JSTL1.1是针对Tomcat5.x版本设计的,它在JSTL1.0的基础上进行了一些改进和增强。这个版本引入了对JSP 2.0规范的支持,包括对EL (Expression Language) 的完全支持。EL是一种轻量级的脚本语言,用于在JSP页面中表达和...

    jstl帮助 jstl帮助手册 jstl帮助文档

    1. **Core标签库**:这是JSTL最基础的部分,包含了一系列处理页面流程控制、条件判断、迭代等任务的标签。例如`&lt;c:if&gt;`用于条件判断,`&lt;c:forEach&gt;`用于遍历集合,`&lt;c:choose&gt;`、`&lt;c:when&gt;`和`&lt;c:otherwise&gt;`用于多...

    jstl标签基础+例子

    ### JSTL 标签库基础与实例解析 #### JSTL 标签库简介 JSTL(JavaServer Pages Standard Tag Library)是为简化JavaServer Pages (JSP) 页面开发而设计的一组标准标签库。它提供了一系列的标签来执行常见的页面处理...

    jstl和el的基础

    【JSTL与EL基础详解】 JSTL(JavaServer Pages Standard Tag Library)和EL(Expression Language)是Java Web开发中的两个重要组件,主要用于增强JSP页面的功能和可读性。JSTL是一组标签库,提供了处理常见任务如...

    jstl学习大全,jstl源码,很全的jstl学习代码

    Core库是JSTL中最基础的部分,包含了很多用于控制流程、处理URL、输出内容等的标签。例如: - `&lt;c:if&gt;`:条件判断 - `&lt;c:choose&gt;`、`&lt;c:when&gt;`、`&lt;c:otherwise&gt;`:多条件选择 - `&lt;c:forEach&gt;`:循环遍历 - `&lt;c:set&gt;`...

Global site tag (gtag.js) - Google Analytics