jstl

JSTL 简介

JSTL(Java Standard Tag Library) –Java标准标签库。

SUN公司制定的一套标准标签库的规范。JSTL标签库,是由一些Java类组成的。

 

JSTL组成:

JSTL –Core 核心标签库。 - 这是本部分的重点

JSTL – I18N - 国际化标签库。Internationalization-    I18N

JSTL - Functions – 函数库。

在jstl-1.2.jar包的META-INF目录中,保存着各种tld文件的版本。请查看。

 

JSTL核心标签库:

使用JSTL核心标签:

如果你的Web项目是基于JavaEE2.5或以上的。可以在你项目的任意页面上通过<%@ taglib 指令使用JSTL的核心标签库。

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

uri是引用标签库的资源定位符,并不代表一个实际的地址。Prefix是自定义的前缀。

如果你的项目是JavaEE2.5以下的项目,必须在在你项目中的lib目录下,存在以下两个jar文件为:jstl.jar、standard.jar

在上面的包中,存在着jstl的tld文件,用于描述jstl标签的属性、名称、资源等信息。程序就是通过这个tld文件找到相关java类以

供运行的。然后再在任意的JSP页面通过指令导入jstl.

Jar文件的说明:

Jstl-1.2.jar – 包含在jstl规范中定义的接口和类的class文件,在META-INF目录下包含了所有可用的tld文件。

可以通过以下步骤修改引用jstl的方式:找到META-INF目录中的c.tld文件,将c.tld放到WEB-INF/tld/目录下。

在web.xml中配置以下信息:

 
 
  /c.tld
  /WEB-INF/tld/c.tld
 

 

然后在页面上如下使用:<%@ taglib uri=“/c.tld” prefix=“c”%>

 

jstl_第1张图片

jstl_第2张图片

jstl_第3张图片

jstl_第4张图片

jstl_第5张图片

jstl_第6张图片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ page import="cn.hncu.domain.User"%>



JSTL技术演示1



	

JSTL技术演示1

<% pageContext.setAttribute("name", "hncuJack"); %> ${fn:startsWith(name,"hncu")},${fn:length(name)+10}
0. 通过c.tld文件了解forEach标签的一个用法
${i}  
1. c:out标签
<% pageContext.setAttribute("age", "15"); pageContext.setAttribute("str", "湖南城市"); %> , , ${name}
   ${age}
   ${str}

2. c:set标签
${sum},



3. c:remove标签

4. c:if标签
<% User user = new User(); user.setName("Jack"); pageContext.setAttribute("user", user, pageContext.SESSION_SCOPE); %>
Name:
Pwd:
欢迎你,${user.name}
${!empty user ? str : "" }
${!empty user ? user.name : "" }

5. c:choose, c:when, c:otherwise 标签,, 相当于java中的if,else if, else
优秀 良好 中等 及格 不及格
<%@ page language="java" import="java.util.*,cn.hncu.domain.*"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="cn.hncu.domain.USER2"%>



JSTL技术演示2



	

JSTL技术演示2


6. c:forEach标签
一、普通for循环的功能
${i}:节日快乐!
s

二、增强for循环的功能
1)遍历数组
<% String strs[] = { "aa", "中语言", "bb", "cc" }; pageContext.setAttribute("strs", strs); %> 序号${idx.index}: ${str} , 计数${idx.count}
2)遍历List
<% List list = new ArrayList(); list.add("aaaa"); list.add("bbbb"); list.add("cccc"); list.add("dddd"); pageContext.setAttribute("list", list); %> ${s}    3)遍历Map
<% Map map = new HashMap(); map.put("name", "张三"); map.put("age", "23"); map.put("addr", "安置小区"); pageContext.setAttribute("map", map); %> ${en} ==> ${en.key} : ${en.value}
4)遍历元素值为JavaBean的集合,如List <User>
<% List users = new ArrayList(); users.add(new USER2("Alice", 21)); users.add(new USER2("Bob", 22)); users.add(new USER2("张三", 20)); users.add(new USER2("小李", 11)); pageContext.setAttribute("users", users); %> , ${user.age}


7. c:forTokens标签: 字符串拆分
${x}  

8. c:import标签: 动态导入

9. c:url标签: 重写url, 以后开发时的后台地址都用这种方式写,非常保险,也简单(斜杠代表项目根目录)!
Name:
Pwd:


10. c:redirect标签: 重定向。 该标签有一个坑: url地址不能用c:url
<%-- 下面这一句如果放开,则演示时当前页面停不住,直接重定向走了! 反模式: --%>

jstl_第7张图片

jstl_第8张图片

jstl_第9张图片

jstl_第10张图片

jstl_第11张图片

jstl_第12张图片

jstl_第13张图片

jstl_第14张图片

<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>


  
    JSTL技术演示3
  
  
  
    

国际化演示1: 写死的--过渡版

<%-- --%> ,Jack
2018.9.10 20:34

<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>


  
    JSTL技术演示4
  
  
  
    

国际化演示2: 写活的--正式版

English 中文
,Jack
2018.9.10 20:34

访问另一个页面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java,EE)