`

使用JSTL 展现页面内容

阅读更多

JSP 标准标记库(JSP Standard Tag Library,JSTL)主要功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问等等。在MVC模式中作为页面展现jstl是一个不错的选择,使用起来也感觉比较舒服。现将常用的标签介绍如下:

Core Actions Action     Description

<c:catch>    主要用于异常的捕获

<c:choose>    相当于switch的作用

<c:forEach>    主要用于集合、数组等等的迭代

<c:forTokens>    主要用于字符串的迭代

<c:if>    条件语句

<c:import>    Imports a URL

<c:otherwise>    相当于switch中的default

<c:out>    主要用于输出

<c:param>    主要用于为 <c:import> or <c:url>指定参数

<c:redirect>    重定向

<c:remove>    Removes a scoped variable

<c:set>    Creates a scoped variable

<c:url>    重写url

<c:when>    相当于switch中的case

一、在jsp中要使用jstl标签首先要声明对标签的引用:

1.jakarta-taglibs-standard-1.0版本声明
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

2.jakarta-taglibs-standard-1.1版本声明
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

二、使用

1.<c:set>定义变量
(1)语法:<c:set var=" " name=" " scope=" " value=" " expression=" "/> scope 属性是可选的,其缺省值是 page 。
(2)例子:<c:set var="name" value="yourName" />

2.<c:out>输出语句
(1)语法:<c:out value=" " expression=" " default=" " expression=" " escapeXml="boolean"/>

escapeXml 属性也是可选的。true:输出代码,false:输出真正内容。它控制当用<c:out> 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 < 、 > 和 & )。

带缺省内容的 <c:out> 操作示例
Hello <c:out value="${user.username}" default=="Guest"/>! default属性作用于如果提供的变量不存在则使用该属性定义的值。

禁用转义的 <c:out> 操作示例
<c:out value="${user.company}" escapeXml=="false"/>

组合静态文本和多个 EL 表达式以指定动态属性值:
<c:out value="Hello ${user.firstName} ${user.lastName}"/>

<1>.点运算符通常用于访问对象的属性。如在表达式 ${user.firstName} 中,使用点运算符来访问 user 标识符所引用对象的名为firstName 的属性。当被访问的属性本身是对象时,可以递归地应用点运算符。例如,如果我们虚构的 user 对象有一个实现为 Java 对象的address属性,那么也可以用点运算符来访问这个对象的和。例如,表达式 ${user.address.city} 将会返回这个地址对象嵌套的 city 属性。

<2>.方括号运算符用来检索数组和集合的元素。例如,表达式 ${urls[0]} 返回 urls 标识符所引用的数组或集合的第1个元素。
在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${commands["dir"]} 返回与 commands 标识符所引用的 Map 中的 "dir" 键相关联的值。此外,点运算符和方括号运算符还可以互操作。例如,如果数组的元素本身是对象,则可以使用方括号运算符来检索该数组的元素,并结合点运算符来检索该元素的一个特性(例如 ${urls[0].ip}。

(2)例子:
<c:out var='name'/>

3.<c:if>条件语句
(1)语法:<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
test属性定义的是条件表达式。

(2)例子:
<c:if test="${sessionScope.list!=null and sessionScope.list!=''}">
<c:set var="list" value="${list}," scope="session" />
</c:if>

<c:if test="${pageContext.request.method=='POST'}">

4.迭代
(1)语法:
<c:forEach items='${primitiveValues}' var='item'>
   value = <c:out value='${item}'/><br>
</c:forEach>
         实现迭代内容的主要 JSTL 操作是 <c:forEach> 定制标记。该标记支持两种不同样式的迭代:整数范围上的迭代(类似 Java 语言的 for 语句)和集合上的迭代(类似 Java 语言的 Iterator 和 Enumeration 类)。
<c:forEach> 标记的语法。 begin 和 end 属性要么是静态整数值,要么是可以得出整数值的表达式。它们分别指定迭代索引的初始值以及迭代索引的终止值。当使用<c:forEach> 在整数范围内进行迭代时,这两个属性是必需的,而其它所有属性都是可选的。 当出现 step 时,它也必须是整数值。它指定每次迭代后索引的增量。
items可以为:List, LinkedList, Vector, ArrayList, Stack,Hashtable, HashMap, TreeMap,WeakHashMap,java.lang.Object[],java.lang.String,java.util.Iterator,java.util.Enumeration。

(2)例子:
<c:forEach var='item' begin='5' end='10'>
   value = <c:out value='${item}'/><br>
</c:forEach>
输出结果:5 6 7 8 9 10.

<c:forEach var='item' begin='5' end='10' step='2'>
   <c:out value='${item}'/>
</c:forEach>
输出结果:5 7 9.

<c:forEach items='ONE, TWO, THREE, FOUR' var='item'>
   <c:out value='${item}'/>
</c:forEach>
输出结果:ONE TWO THREE FOUR.

<c:forTokens items='ONE | TWO | THREE | FOUR' delims='|' var='item'>
   <c:out value='${item}'/>
</c:forTokens>
输出结果:ONE TWO THREE FOUR.

<c:forTokens items='(A B C)-(D E F)' delims='()' var='item'>
   <c:out value='${item}'/><br>
</c:forTokens>
输出结果:(A B C) - (D E F)

5.条件选择语句
(1)语法
<c:choose>
<c:when test="testCondition">
body content
 </c:when>
 <c:otherwise>
        <c:out value="${param.enter}" />
        <br />
</c:otherwise>
</c:choose>
(2)例子:
<c:choose>
      <c:when test="${param.enter=='1'}">One
      <br />
      </c:when>

      <c:when test="${param.enter=='2'}">Two
      <br />
      </c:when>

      <c:otherwise>
        <c:out value="${param.enter}" />
        <br />
      </c:otherwise>
    </c:choose>

6.异常语句:
(1)语法
<c:catch var="e">
body-condition
</c:catch>
(2)例子:
<c:catch var="e">
10 divided by 0 is
<c:out value="${10/0}" />
<br />
</c:catch>

<c:import url='http://www.mysite.com/mydoc.txt'/>

7.格式化输出:
(1)语法
fmt:formatNumber value="numericValue"
    [type="{number|currency|percent}"]
    [pattern="customPattern"]
    [currencyCode="currencyCode"]
    [currencySymbol="currencySymbol"]
    [groupingUsed="{true|false}"]
    [maxIntegerDigits="maxIntegerDigits"]
    [minIntegerDigits="minIntegerDigits"]
    [maxFractionDigits="maxFractionDigits"]
    [minFractionDigits="minFractionDigits"]
    [var="varName"]
    [scope="{page|request|session|application}"]/>
type:可以是currency、 number、 和percent。

(2)例子:
fmt:formatNumber value="12" type="currency" pattern=".00元"/> 将显示 12.00元

fmt:formatNumber value="12" type="currency" pattern=".0#元"/> 将显示 12.0元

fmt:formatNumber value="1234567890" type="currency"/> 将显示 ¥1,234,567,890.00
(货币符号与web服务器的 locate 设定相关)

fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> 将显示 123,456.79

fmt:formatNumber value="12" type="percent" />将显示 1,200%

fmt:formatNumber value="${requestScope.money}" type="currency" pattern="0.00元"/>

fmt:formatNumber value="500000.01" groupingUsed="false" />
500000.01
fmt:formatNumber value="98.6" minIntegerDigits="4"/>
0,098.6
fmt:formatNumber value="98.6" minIntegerDigits="4" groupingUsed="false"/>
0098.6
fmt:formatNumber value="3.141592653589" maxFractionDigits="2"/>
3.14
fmt:formatDate value=”${now}” pattern="yyyy-MM-dd"/>

fmt:message key="Welcome" />

WEB-INF/classes/messages_en.properties
内容:index.num=Welcome to the JSTL
fmt:message key='index.num' var='msg' scope='request'/>

<context-param>
      <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
      <param-value>zh_CN</param-value>
</context-param>

fmt:setLocale value='CN'/>
fmt:requestEncoding value='GB2312'/>

 

分享到:
评论

相关推荐

    JSTL标签库-tomcat10-简化JSP中java代码

    **正文** JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化...通过学习和实践这些内容,开发者可以更加熟练地在JSP页面中运用JSTL标签,提升Web应用的开发质量和效率。

    JSTL Core标签库资料

    从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。

    jstl1.2.zip

    总结来说,JSTL1.2是一个强大的JavaWeb开发工具,通过提供一系列预定义的标签,使开发者能够更加专注于页面展现和业务逻辑,而不是底层的Java代码。而这个“jstl1.2.zip”压缩包中的四个组件,共同构成了JSTL1.2的...

    jstl标签库的配置

    3. **使用JSTL标签**:在JSP页面中,通过以下方式引入JSTL库: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ...

    EL及jstl.rar

    2. **减少脚本代码**:通过使用JSTL,可以在JSP页面中避免过多的Java脚本,使页面更专注于展现逻辑。 3. **模块化开发**:JSTL提供了多种标签库,如Core库、XML库、SQL库等,方便模块化开发。 4. **与Struts、Spring...

    大量使用的JSTL标签用法.docx

    JSTL,全称JavaServer Pages Standard Tag ...JSTL标签的应用大大减少了JSP页面中的脚本let代码,使得页面更专注于展现逻辑,而将业务逻辑和控制逻辑移到了后台处理。使用JSTL可以使JSP代码更清晰、更易于理解和维护。

    JSTL标签配置[参考].pdf

    它提供了一套标准的标签,使得开发者可以在JSP页面中使用标签代替Java脚本(scriptlets)进行业务逻辑处理和数据展现。JSTL的主要目标是提高JSP页面的可读性、可维护性和符合JavaServer Pages 2.0标准。 在传统的...

    el表达式+JSTL.rar

    《深入理解EL表达式与JSTL在企业实训中的应用》 在现代Web开发中,EL(Expression Language)表达式和JSTL(JavaServer Pages ...在实际项目中,应根据需求合理选择和组合使用EL和JSTL,以实现最佳的业务逻辑展现。

    基于工作任务的Java+Web应用教程第五章任务1-5.zip

    在第一个动态版本的基础上,使用JSTL/Sevelet/EL/JavaBean优化宠物分类展现的页面代码高版本MyEclipse创建的Web项目已自带,不用添加。 二、开发环境准备 在任务4的开发环境的基础上,下载包jstjar 和standardjar ...

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 实战讲解 全套PPT课件 共10个章节.rar

    Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第06章 用JavaBean、EL和JSTL优化宠物分类展现页面 (共30页).ppt Java网络编程 JAVA web开发实例讲解 宠物分类展现web项目 第07章 用Struts实现宠物商城的...

    数据库数据显示到网页

    在本项目中,JSP页面接收到后端传递的数据后,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来处理这些数据。EL用于简化数据访问,而JSTL则提供了一系列标签来处理循环、条件...

    好用的page分页处理

    本资源提供了一个高效且易理解的分页解决方案,主要使用Java后端配合JSP(JavaServer Pages)和JSTL(JavaServer Pages Standard Tag Library)在前端进行展现。 首先,让我们详细了解`page`分页处理的核心概念: ...

    分页的详解源代码

    第一种使用了Jsp中的JSTL标签与后台的连接,数据库返回数据,Jsp负责绘制表格,充分展现了前端与后台的分工职能,有利于理解MVC的架构模式。第二种使用了Jsp中的JavaScript的函数功能实现前台与后台的连接,本次使用...

    jsp css技术详解

    在JSP中,我们可以使用JSTL(JavaServer Pages Standard Tag Library)或EL(Expression Language)来引入CSS资源,例如通过`<link>`标签来链接外部CSS文件,或者直接在JSP页面中使用`<style>`标签内联定义样式。...

    jsp读取Excel中的数据,以表格形式展现出来

    本篇文章将详细讲解如何使用JavaServer Pages(JSP)来读取Excel文件中的数据,并以表格的形式在网页上展示,同时考虑字体和背景的样式。 首先,我们需要了解JSP的基础知识。JSP是一种基于Java的动态网页技术,允许...

    jsp课件,第3天的,适合初学者学习,是一个培训结构的课件。拿出来共享啊。

    两者可以结合使用,JSP用于展现,Servlet处理业务逻辑。 【适合初学者的学习路径】 对于初学者,学习JSP应该从理解基本概念和语法开始,然后逐步掌握JSP指令、内置对象的使用,以及EL和JSTL的应用。同时,了解...

    jsp网页超级给力的。自己期末作业

    8. **JSTL(JavaServer Pages Standard Tag Library)**:一套标准的标签库,提供了一些常用的标签来简化JSP页面的开发,如迭代、条件判断、XML处理等。 9. **Servlet与JSP的关系**:JSP最终会被编译成Servlet,...

    网页形式的JSP教程(最全的)

    - 使用EL和JSTL减少脚本代码,提高可读性。 - 适当使用session和cookie,避免过多的数据存储。 - 了解MVC(Model-View-Controller)模式,结合Spring MVC或Struts等框架提高开发效率。 7. **学习资源** - 本...

    JSP应用开发-BBS在线学习论坛项目总结.pptx

    在项目中使用JSTL,首先需要引入相应的标签库,然后在页面上使用这些标签来替代传统的JSP脚本。JSTL使得代码更加简洁和可读,提高了代码的可维护性。例如,`<c:forEach>`遍历集合,`<c:if>`进行条件判断,`<c:set>`...

    网页动态树形菜单图

    在IT行业中,网页开发是一项重要的工作,而动态树形菜单是网页交互设计中常见的元素,尤其在内容层次较多、结构复杂的网站中更为常见。本文将深入探讨“网页动态树形菜单图”这一主题,以及与之相关的JSP技术。 ...

Global site tag (gtag.js) - Google Analytics