`

JSP中JSTL 标签总结

 
阅读更多
很久没碰jsp页面相关的开发了,一直是后台service即使最近使用的也是freemarker
springMVC后,不用struts2标签后页面的输出都要改用比较原始的标签了
今天一天的问题记录,后期不定时补充以扩充自己的问题集

jsp头部引入使用的标签
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/tld/fmt.tld"%>
<%@ taglib prefix="spring" uri="/WEB-INF/tld/spring.tld"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>


①循环
controller中 new ModelMap().addAttribute("list",list); 将list数据放到request中后需要在页面中使用的时候需要循环
<c:forEach items="${list}" var="m">
name:${m.name}
</c:forEach>

②判断
jsp页面中使用if判断语句,以循环为例,需要list的length属性
PS:forEach可以循环包括List Set 等常用集合
场景:多个结果使用竖线分隔,最后一个不需要竖线(内地|港澳|欧美)
<c:forEach items="${list}" var="s" varStatus="st">${s.name}
<c:if test="${fn:length(list)!=(st.index+1)}">|</c:if>
</c:forEach>
varStatus="st" 可以用来代表元素的序号从0开始,如list有5条数据st最大可到4
if判断条件在页面中要使用${}对获取值进行处理后将结果放入test的判断中,即test引号内结果可认为是true,false
对于list的length使用 fn:length(list) 获取,list中没有length或者size属性,需要java处理后才能得知list个数或者长度。
st中包含index属性,即表示循环的值0~4,因为length从1开始,对比的时候需要将index+1后进行判断
依旧假设list元素有5个,在list循环到最后一次时 st.index 的值为4,判断结果为相等时跳出循环,即不显示最后一个竖线(|)

③标签和java程序嵌套使用
场景:当list中存在外键实体如 list的一个元素m,m.type.category.name(一首歌曲有多个关联关系 type属性为:轻音乐,柔情歌曲。category属性同为mp3)此时如果需要对最大的分类进行循环显示--mp3,就会造成显示2次mp3(xx之歌|[轻音乐][柔情歌曲]|[mp3][mp3])
大多数人会建议在controller中进行处理,不过在实体不会进行改变的条件下可以使用标签和java程序嵌套方式处理显示
<c:forEach items="${list}" var="m">
<%
Film f = (Film)pageContext.getAttribute("m");
Set<FilmTypeMap> mtp = mv.getFilmTypeMap();  //这里需要Film实体中含FilmTypeMap这个实体Set集合
Map<Long,String> map = new HashMap<Long,String>();
for(FilmTypeMap tm:mtp){
map.put(tm.geFilmType().getFilmCategory().getId(), tm.getFilmType().getFilmCategory().getName());
}
for(String str:map.values()){
out.print("["+str+"] ");
}
%>

④日期处理
按照 yyyy-MM-dd 方式显示
<fmt:formatDate value="${time}" pattern="yyyy-MM-dd"/>


20120808 一天遇到的问题整理记录

⑤有c:if 没有c:else的解决方法
类似choose case的条件判断
<c:choose>
<c:when test="">if结果</c:when>
<c:otherwise>else结果</c:otherwise>
</c:choose>

⑥在jsp页面中取列表长度 如list的size 或数组长度
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:out value="${fn:length(list)}"></c:out>




fn标签
<%@tablib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:substring("你要截取的字符串"),beginIndex,endIndex}

下面是JSTL中自带的方法列表以及其描述

函数名 函数说明 使用举例 
fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}"> 
fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}"> 
fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}"> 
fn:escapeXml 把一些字符转成XML表示,例如<字符应该转为&lt; ${fn:escapeXml(param:info)} 
fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")} 
fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")} 
fn:length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)} 
fn:replace 替换字符串中指定的字符 ${fn:replace(text, "-", "&#149;")} 
fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")} 
fn:startsWith 判断字符串是否以某个子串开始 <c:if test="${fn:startsWith(product.id, "100-")}"> 
fn:substring 获取子串 ${fn:substring(zip, 6, -1)} 
fn:substringAfter 获取从某个字符所在位置开始的子串
${fn:substringAfter(zip, "-")} 
fn:substringBefore 获取从开始到某个字符所在位置的子串 ${fn:substringBefore(zip, "-")} 
fn:toLowerCase 转为小写 ${fn.toLowerCase(product.name)} 
fn:toUpperCase 转为大写字符 ${fn.UpperCase(product.name)} 
fn:trim 去除字符串前后的空格 ${fn.trim(name)} 
分享到:
评论

相关推荐

    JSP的JSTL标签和EL表达式大全

    **JSP的JSTL标签和EL表达式详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码来生成动态内容。然而,传统的JSP脚本语法可能导致代码混乱且不易维护。为了解决这个问题...

    JSP EL JSTL 学习总结.rar

    结合“总结之JSP.docx”文档,可能涵盖了对JSP、EL和JSTL的综合概述,包括它们的概念、使用场景、优点和最佳实践。这些文档内容对于初学者理解JSP开发以及提升Java Web技能非常有帮助,特别是对于准备IBM的Java考试...

    jsp标准jstl标签

    下面我们将深入探讨JSTL标签库及其使用方法。 1. **JSTL Core库** JSTL Core库是JSTL中最基础的部分,包含了处理控制流程、条件判断、迭代、URL处理等常用功能的标签。例如: - `&lt;c:if&gt;`:进行条件判断。 - `...

    JSTL常用标签总结

    JSTL(JavaServer Pages Standard Tag Library)即JavaServer页面的标准标签库,它是一套用于JSP页面的自定义标签库,...JSTL标签库在JSP开发中非常实用,可以大大简化JSP页面的代码,提高开发效率和页面的可维护性。

    jstl标签库的配置

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

    JSTL标签配置流程

    2. **工具友好**:大多数HTML编辑工具无法很好地处理JSP scriptlet,而JSTL标签与HTML标签相似,可以被这些工具识别和处理,增强了开发效率。 3. **模块化**:JSTL标签库分为多个模块,如core、fmt、sql等,每个...

    JSP网页编程JSTL标签

    ### JSP网页编程JSTL标签详解 #### JSTL概览 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它提供了一系列预定义的...

    JSTL标签库

    ### JSTL标签库知识点详解 #### 1. JSTL简介 JSTL(JSP Standard Tag Library,JSP标准标签库)是由Sun Microsystems公司发布的一种针对JSP(Java Server Pages)页面开发的新组件。它允许开发者使用预定义的标签...

    jsp中使用JSTL的jar包

    总结来说,JSTL的jar包是JSP开发中的重要工具,它使得开发者能够利用一系列预定义的标签来处理常见的任务,提高了代码质量和开发效率。正确引入并使用这些jar包,可以使JSP项目更加专业和高效。

    EL表达式和jsp JSTL标签库的总结

    ### EL表达式与JSP JSTL标签库的总结 #### 一、EL表达式的使用方法及示例 ##### 1. EL隐含对象 在Java Server Pages (JSP) 技术中,EL(Expression Language)表达式是一种用于简化JSP页面中Java代码编写的工具。...

    jstl标签库jar包

    JSTL与EL(Expression Language)紧密协作,EL负责在JSP页面中计算表达式,而JSTL标签则执行更复杂的操作。例如,`&lt;c:out&gt;`标签常用来安全地输出EL表达式的结果,防止XSS攻击。 ```jsp ${user.name}"/&gt; ``` **5. ...

    jstl标签使用的总结心得

    JSTL,全称JavaServer Pages Standard Tag Library,是一个用于JSP页面的开源标签库,由Apache Jakarta项目维护。它旨在提高JSP开发的效率,通过提供一系列预定义的标签来简化常见任务,如控制流、迭代、XML处理、...

    jstl(jsp标准标签)

    - 提升性能:JSTL标签在服务器端被编译为Java代码,执行效率相对较高。 **8. JSTL与JSP自定义标签的区别** JSTL是预定义的一组标签,而JSP自定义标签是开发人员根据需求自行创建的标签库。JSTL已经包含了大量常用...

    JavaWeb-12:自定义标签库开发&JSTL标签库

    二、JSTL标签库 JSTL是Java Web开发的标准标签库,它包含五个核心部分:Core、Format、I18N、XML和SQL。这些标签提供了丰富的功能,例如控制流、格式化、国际化、XML处理和数据库操作。 1. **Core标签**:包括if、...

    jstl标签库.rar

    配置完成后,我们就可以在JSP页面中使用JSTL标签了。例如,我们可以用`&lt;c:forEach&gt;`标签遍历集合: ```jsp &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; List&lt;String&gt; list = new ArrayList...

    jstl标签帮助文档

    标题“jstl标签帮助文档”和描述表明,这份文档是一份关于JSP页面标签库中常用标签的详细帮助文档,并附有学习笔记。文档是英文版的,可以推断它是对JavaServer Pages™ Standard Tag Library (JSTL) 的详细介绍。 ...

    JSTL标签使用总结

    通过上述介绍,我们可以看到JSTL标签库及其内置函数的强大功能,它们极大地简化了JSP页面的开发过程,并提高了代码的可读性和可维护性。在实际项目中合理利用这些工具,可以有效提高开发效率和质量。

    jstl_jar包.zip

    总结起来,JSTL 是 JSP 开发中不可或缺的一部分,它通过提供一组标准标签,简化了常见的网页编程任务,增强了代码的可读性和可维护性。`jstl_jar包.zip` 文件提供了 JSTL 的 API 和实现,使得开发者能够在自己的项目...

    jsp页面用jstl取值

    为了解决这个问题,JSTL应运而生,它提供了一系列预定义的标签,使得在JSP页面中进行控制逻辑和数据操作变得更加简洁和模块化。 JSTL的核心组件是Core、fmt、sql、xml和function库,其中Core库是最基础的,包含了很...

Global site tag (gtag.js) - Google Analytics