`
happysoul
  • 浏览: 403459 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

JSP 中 JSTL 页面标签的笔记

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

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

①循环
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)} 
0
0
分享到:
评论

相关推荐

    jstl标签学习笔记

    JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP页面的编程,使得开发者能够使用标签而不是脚本来处理常见任务。在JSTL中,`EL(Expression Language)`是用于访问JavaBeans属性和...

    jstl标签的笔记

    JSTL(JavaServer Pages Standard Tag Library)是一组标准标签库,它为开发者提供了一系列的功能强大的标签,用于简化JSP页面的开发工作。JSTL标签库可以提高代码的可读性和可维护性,并且减少了对脚本语言的依赖,...

    jstl相关教程及笔记

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套方便使用的标签,用于简化HTML和JSP代码,提高开发效率。本教程将深入探讨JSTL的核心概念、表达式语言...

    jstl资料笔记笔记笔记笔记

    `&lt;c:set&gt;` 标签用于设置变量的值,这些变量可以在后续的JSP页面或同一请求内的其他JSP页面中使用。 #### 基本语法: ```xml [scope="{page|request|session|application}"]/&gt; ``` 或者 ```xml [scope="{page|...

    servlet,jsp,el,jstl,jms笔记pdf

    JavaServer Pages Standard Tag Library(JSTL)是一组自定义标签库,用于减少JSP页面中的Java代码量。JSTL标签封装了常见的功能,如条件语句、循环等。 - **JSTL标签库**:JSTL标签库包含核心标签库和格式化标签库...

    Ognl_JSTL_学习笔记.zip

    JSTL是一组标准标签库,它提供了一种更有效、更可维护的方式来编写JSP页面,相比于使用脚本元素和自定义标签。JSTL主要包含五个核心部分:Core(核心)、XML、JDBC、JSTL函数库和EL(Expression Language)标签。...

    jsp最全笔记,jstl+El

    - **JSTL标签**:一组标准标签库,用于简化页面逻辑。 #### JSP指令详解 - **Page指令**:,用于设置页面的一些基本属性。 - **language**:指定页面使用的编程语言,默认为Java。 - **import**:导入所需的包和...

    JSP和JSTL笔记.md

    JSP四大域对象和JSTL、EL表达式

    jstl标签帮助文档

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

    JSTL.zip_web网页标签笔记

    **JSTL(JavaServer Pages Standard Tag Library)是Java服务器页面标准标签库,它提供了一系列的标签用于简化JSP开发,使代码更加简洁且易于维护。JSTL主要由四个核心部分组成:Core、XML、Internationalization ...

    JSTL学习笔记,对使用JSTL标签使用者非常有帮助

    **JSTL(JavaServer Pages Standard Tag Library)**是一个标准化的、开源的JSP标签库,旨在简化JSP页面的开发。它由Apache Jakarta小组维护,最初是为了减少JSP页面中自定义标签的重复定义而设计。JSTL 1.02是其...

    EL+JSTL的相关笔记

    JSP 通过允许在 HTML 页面中嵌入 Java 代码实现了动态内容的生成,而 JSTL 则进一步简化了页面开发流程,通过预定义的标签库减轻了编程负担。掌握这些技术和概念对于从事 Web 开发的人来说至关重要。

    JSTL和EL完美笔记

    **JSTL(JavaServer Pages Standard Tag Library)和EL(Expression Language)是Java Web开发中的两个重要组件,它们极大地简化了JSP页面的编写和管理。** **JSTL** 是一套标准的标签库,提供了丰富的功能,如迭代...

    jstl 标签的jar tld 笔记 自己学习了 希望对你有帮助

    JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是Java Web开发中的一种重要工具,它为JSP页面提供了一系列预定义的标签,简化了页面逻辑,使得代码更加清晰易读。TLD(Tag Library ...

    韩顺平jsp九讲笔记

    2. **JSP基本语法**:笔记中会介绍JSP的基本元素,如指令(directives)、动作(actions)和脚本元素(scriptlets)。其中,指令包括page、include和taglib,用于设置页面属性或引入其他资源;动作如jsp:include、...

    JSTL In Action部分笔记

    JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中的一个标准标签库,它提供了许多用于简化JSP页面逻辑的标签。以下是对标题“JSTL In Action部分笔记”和描述中提到的知识点的详细解释: 1. **标签*...

    JSTL参考资料+学习笔记

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JSP页面提供了一套方便、高效的标签,用于处理常见的页面逻辑和控制流程,从而减少Java代码在JSP页面中的使用,提高代码...

    jstl总结资料自己的学习笔记

    JSTL是JavaServer Pages标准标签库,它提供了一组预定义的标签,用于简化JSP页面的开发,使其更加结构化,可读性更强,同时也提高了代码的复用性和可维护性。JSTL主要包含五个核心组件:Core、XML、Format、I18N和...

Global site tag (gtag.js) - Google Analytics