`
henjue
  • 浏览: 7741 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JSTL使用说明

    博客分类:
  • J2EE
阅读更多

JSTL使用说明

今天讲讲JSTL基础使用(非原理,原理自己去看源代码,这就是JAVA开源的好处,嘿嘿)

JSTL分为标签库和EL表达式两部分。

要使用JSTL,必须导入标签库

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

重点讲下EL表达式和常用标签

<c:out>

<c:set>

<c:forEach>

<c:if>

<c:choose>

EL表达式

${}表示

${user}

session.getAttribute("user")一样,这里的不只是session,默认查找顺序page,request.session,application。就是说首先在page范围内查找有没有user,如果没有就到request中查找,以此类推。如果都没有,就为空.当然你也可以指定查找范围,比如${sessionScope.user}就是在session范围内查找。

 属性范围在EL中的名称
Page对应PageScope
Request对应RequestScope
Session对应SessionScope
Application对应ApplicationScope

如果获取的对象是个JavaBean,可以用“.”或者“[]”来确定bean的属性。

比如有个userBean

Public class UserBean {

Private int uid;

Private String uname;

Public void setUname(String uname){

This.uname=uname;

}

.........

.........

.........

}

Session中存放了一个UserBean的实例user,我们要去的uname属性,可以这样

${sessionScope.user["uname"]}或者${sessionScope.user.uname}(可以省略sessionScope,就会按照返回依次查找)

如果对象是个Map之类的,和上面一样。获取key即可。

map.put("uname","uname");

${map.uname}

如果对象是个List直接用下标就行

list.add("hello1");

list.add("hello2");

${list[0]}

就等于java代码中的list.get(0)

<c:out>标签

<c:out>标签是页面输出标签

<c:out value="" default="">

Vaue属性是要输出的值(可以是EL

Default是当valuenull的时候输出的内容

<c:set>标签

<c:set>标签是设置变量或者属性的值

<c:out value="" var="" target="" property="" scope="">

Value设置的值

Var是设置的变量

Target是个javaBean

Property是要设置的属性名(targetproperty共存,但是使用target的时候就不能使用var,可以理解为c:set标签有两种版本或者两种使用方式)

Scope范围

Var版本

<c:set var="i" value="1"></c:set>

<c:set var="str" value="hello"></c:set>

(如过变量在返回内没有,会创建一个新对象)

EL引用的时候就是${i}${str},显示1hello

Target版本

比如前面的UserBean,现在userUserBean的实例对象,且uname等于“admin”,我可以用set来修改

<c:set target="${user}" property="uname" value="supermanager"></c:set>

现在再看看uname的值${user["uname"]},显示的不是“admin”而是“supermanager

<c:forEach>

<c:forEach>标签就像是JAVA中的for循环

<c:forEach items="" var="" begin="" step="" end="">

Items循环体(必须)

Var存放循环的变量,

Begin开始位置

End结束位置

Step步长

如果用java中的for来比较

List<String> strs=new ArrayList<String>();

<c:forEach items="strs" var="str" begin="5" step="2" end="14">

<c:out value="${str}"></c:out>

<c:forEach>

可以理解问下面的JAVA代码

Int i=0;

For(i=5;i<=14;i+=2){

String str=strs.get(i);

Out.print(str);

}

问题:现有如下信息,用JSTL显示出来?

Map<String, Object> map1 = new HashMap<String, Object>();

map1.put("uname", "admin");

map1.put("upwd", "adminpwd");

Map<String, Object> map2 = new HashMap<String, Object>();

map2.put("uname", "admin2");

map2.put("upwd", "adminpwd2");

List<Map> list = new ArrayList<Map>();

list.add(map1);

list.add(map2);

解题:

<c:forEach items="${list}" var="maps">

<c:forEach items="${maps}" var="map">

<c:out value="key${map['key']}   value:${map['value']}"></c:out><br />

</c:forEach>

<br />

</c:forEach>

显示截图

If标签

javaif差不多。

Test表达死,var存放表达式的值

<c:set vat="t" value="admin"></c:set>

<c:if test="${t == 'chenjin2'}" var="v">

<c:out value="${v}"></c:out>

</c:if>

页面显示false

<c:choose>标签

上面的if只能做一般的判断,不能像JAVA中的if(){}else if{}else{}这样,现在就可以用choose标签了。

<c:set var="i" value="14"></c:set>

<c:choose>

<c:when test="${i<5}">

i小于5

</c:when>

<c:when test="${i<10}">

i小于10

</c:when>

<c:otherwise>

i大于等于10

</c:otherwise>

</c:choose>

可以理解为choose标签说明里里面的是多重判断

When就等于java中的else if

Otherwise 就等于java中多重判断的最后的那个else

<!--EndFragment-->
0
3
分享到:
评论
1 楼 jobar 2011-04-26  
引用
Test表达死,

相关推荐

    jstl1.1使用说明.pdf

    ### JSTL 1.1 使用说明 #### JSTL 1.1 简介 JSTL(JavaServer Pages Standard Tag Library)是专为Java Web开发设计的一套标准标签库,它由JCP(Java Community Process)指定并发布。最新版本JSTL 1.1提供了一...

    JSTL详解 DOC文档 较全的JSTL标记说明

    通过使用 JSTL,开发者可以减少 JSP 页面中的脚本代码量,提高代码的可读性和可维护性。 **环境搭建步骤:** 1. **下载JSTL包:** - 需要下载JSTL的必需文件,如 `jstl-1.1.jar`。 2. **添加JSTL包至项目:** - ...

    jstl functions标签详细使用说明

    JSTL(JavaServer Pages Standard Tag Library)是一个用于JSP的标准标签库,它极大地简化了在JSP页面中处理常用任务的方式。其中,`functions`标签库提供了许多实用的字符串和数组操作函数,使得开发者无需编写Java...

    jstl标签库与使用教程

    `使用说明.txt`文件通常会详细解释如何在项目中引入和使用JSTL,包括配置步骤、标签的用法示例以及常见问题的解决方法。建议仔细阅读该文件以更好地理解和应用JSTL。 总之,JSTL通过提供一系列预定义的标签,使JSP...

    jstl核心标签库使用说明

    JSTL 1.2是目前广泛使用的版本,它包含了五个主要的标签库: - **Core(核心标签库)**:提供基本的操作,如条件判断、循环控制等。 - **I18N(国际化标签库)**:用于处理国际化和本地化的需求。 - **SQL...

    jstl标签帮助文档

    结合标题、描述和标签,可以推断文档中的主要内容将是JSTL标签库的使用方法、各标签的详细描述以及如何在JSP页面中有效地使用这些标签来简化页面开发并提高代码的可读性和可维护性。 由于文档是英文版的,并且包含...

    jstl标签说明文档(chm)

    JSTL标签库的标签说明文档,将官网上的copy下来制成chm,因为找了很久就是没有chm的,只好这样了,顺便发出来给需要的朋友

    jstl-1.2.rar_JSTL_jstl 1.2_jstl jar_jstl-1.1.2.jar _jstl.jar

    `功能描述.txt` 文件可能是对JSTL 1.2版本中各个标签和功能的详细说明,可以帮助开发者更好地理解和使用JSTL库。 总之,JSTL作为Java Web开发的重要工具,通过提供丰富的标签库,简化了开发者的工作,提高了代码的...

    JSTL中文帮助文档

    ### JSTL中文帮助文档详解 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library)是一种为简化和标准化JSP页面开发而设计的标签库。它提供了一系列预定义的动作和脚本功能,使得开发者能够在不使用或较少...

    JSTL最新版本(1.2.1)完整下载

    - **javacdoc**:这是Java的类文档,为JSTL API提供了详细的文档说明,方便开发者查阅和学习。 - **api.jar**:这个JAR文件包含了JSTL的API接口定义,供开发者在编程时引用。 使用JSTL的好处在于提高了代码的可读性...

    eclipse使用jstl需要引入的jar包

    eclipse使用jstl需要引入的jar包 具体教程参见说明 JSTL--JSP Standard Tag Library(JSP标准标签库),由JCP(Java Community Process)制订,它是一组形如HTML的标签,让入门者无须Java学习也可编写动态WEB页 ...

    JSTL的资源包

    - `README`或`LICENSE`文件:可能包含有关该版本的使用许可和说明信息。 - `docs`目录:可能包含API文档和其他帮助材料,方便开发者查阅。 **JSTL的使用方法**: 1. 将`jstl.jar`和`standard.jar`添加到项目的类...

    JSTL标准标签库很详细的说明和使用指南

    ### JSTL标准标签库详解及使用指南 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是一种用于简化JavaServer Pages (JSP) 页面开发的标准标签库。它由Apache Jakarta...

    JSTL1.2.zip

    8. **javadoc**: 提供了JSTL API的Java文档,方便开发者查看各个类和方法的详细说明。 通过这些资源,开发者不仅可以获取到JSTL 1.2的核心库,还可以深入学习和实践其功能,提升开发效率和代码质量。同时,遵循提供...

    最新开发的一套jsp jstl

    描述中的"具体使用方法见文档"提示我们,压缩包中可能包含了一份详细说明如何使用这套JSP JSTL开发框架的文档,这通常包括安装指南、配置步骤、示例代码以及常见问题解答。"同时也是可以扩展的"意味着这套框架设计时...

    jstl必备教程及文档

    JSTL的主要目标是减少在JSP中使用脚本语言,提升代码的可维护性和可重用性。 **JSTL的核心组件包括:** 1. **Core标签库**:提供了用于控制流程、条件判断、迭代等基础功能的标签。 2. **XML标签库**:用于处理XML...

    js css html手册 jstl标签

    【JSTL】是Java服务器页面的标准标签库,它提供了一系列标签来简化JSP的编程,特别是`Core_标签库介绍.doc`,将详细解释如何使用JSTL的核心标签库,包括条件语句、循环、URL处理等,极大地提高了JSP的可读性和可维护...

Global site tag (gtag.js) - Google Analytics