使用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.
Jstl-1.2.jar – 包含在jstl规范中定义的接口和类的class文件,在META-INF目录下包含了所有可用的tld文件。
可以通过以下步骤修改引用jstl的方式:找到META-INF目录中的c.tld文件,将c.tld放到WEB-INF/tld/目录下。
在web.xml中配置以下信息:
然后在页面上如下使用:<%@ taglib uri=“/c.tld” prefix=“c”%>
<%@ 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);
%>
欢迎你,${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, 以后开发时的后台地址都用这种方式写,非常保险,也简单(斜杠代表项目根目录)!
10. c:redirect标签: 重定向。 该标签有一个坑: url地址不能用c:url
<%-- 下面这一句如果放开,则演示时当前页面停不住,直接重定向走了!
反模式:
--%>
<%@ 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
访问另一个页面