`
zxz_java
  • 浏览: 83912 次
社区版块
存档分类
最新评论

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应用的开发质量和效率。

    jstl1.2.zip

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

    jstl标签库的配置

    例如,可以利用JSTL进行数据展示和控制逻辑处理,而Struts标签库则专注于视图层的展现和动作控制。 总结来说,JSTL是Java Web开发中不可或缺的一部分,它为开发者提供了丰富的标签来简化JSP页面的编写,提高了代码...

    JSTL Core标签库资料

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

    EL及jstl.rar

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

    el表达式+JSTL.rar

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

    JSTL标签配置[参考].pdf

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

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

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

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

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

    数据库数据显示到网页

    JSP是Java的一个动态网页技术,它允许在HTML代码中嵌入Java代码,以实现动态内容的生成。在本项目中,JSP页面接收到后端传递的数据后,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag ...

    好用的page分页处理

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

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

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

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

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

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

    - **JSP页面结构**:JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容(Java代码)组成,通过`<%...%>`、`<%=...%>`、`<jsp:...>`等标签进行区分。 - **JSP生命周期**:包括加载、实例化、初始化、服务、...

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

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

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

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

    Java学习笔记、SSH学习笔记

    1. **JSP**:JSP是一种动态网页技术,允许开发者将HTML代码与Java代码混合编写,从而在服务器端动态生成页面内容。JSP的核心特性包括指令元素、脚本元素、动作元素等,它提供了方便的视图层开发手段。 2. **JSTL**...

    JSP标准标签库.ppt

    JSP(Java Server Pages)标准标签库(JSTL,JavaServer Pages Standard Tag Library)是JSP...在实际开发中,开发者可以根据需求选择使用JSTL提供的不同标签,以实现各种功能,如控制流程、处理数据、展现动态内容等。

    网页动态树形菜单图

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

    分页的详解源代码

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

Global site tag (gtag.js) - Google Analytics