JSTL一般要配合EL表达式一起使用,通过提供大多数 Web 应用程序常用功能的标准实现,JSTL 有助于加速开发周期。
一、JSTL和El表达式的关系
EL与四个 JSTL 定制标记库提供的操作结合起来允许页面作者不使用脚本元素即可实现表示层逻辑(不需要对表示层程序编写java代码),这极大地简化了 JSP 应用程序的维护。
二、使用方法:
1、如果只是使用EL表达式不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/Servlet2.4、JSP2.0规范就可以
2、JSTL标签的配置和使用:
(1) 将jstl.jar和standard.jar拷贝到WEB-INF/lib下
(2)在jsp页面使用:
采用taglib指令引入标签库(使用哪个引入哪个即可)
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
(3)使用自定义函数:
* 定义类MyFunctions,方法必须为静态全局的
* 提供tld描述文件(仿照其他标准tld文件写即可),将tld放到WEB-INF或WEB-INF下的任意目录中
* 在jsp中采用taglib进行引入
* 在EL表达式中采用前缀+冒号+函数名的方式进行调用
三、测试示例:
项目概览
1、EL表达式
Servlet
[java]
package com.jialin.jstl;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 测试El表达式Servlet
* @author jialin
*
*/
public class ElServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Group group = new Group();
group.setGroupName("第一组");
//普通对象
User user = new User();
user.setGroup(group);
user.setName("张三");
user.setAge(17);
//map
Map map = new HashMap();
map.put("k1", "k1value");
map.put("k2", "k2value");
//字符串数组
String[] strArr = new String[] { "a", "b", "c", "d" };
// 对象数组\
User[] arrUser = new User[10];
for (int i = 0; i < arrUser.length; i++) {
arrUser[i] = new User();
arrUser[i].setName("张三" + i);
}
// List
List listUser = new ArrayList();
for (int i = 0; i <= 10; i++) {
User usr = new User();
usr.setName("战三" + i);
listUser.add(usr);
}
//放入request
request.setAttribute("arrUser", arrUser);
request.setAttribute("listUser", listUser);
request.setAttribute("arr", strArr);
request.setAttribute("map", map);
request.setAttribute("user", user);
request.setAttribute("v1", "");
request.setAttribute("v2", new ArrayList());
request.setAttribute("v3", null);
request.setAttribute("v4", "434");
request.setAttribute("hello", "Hello World");
//转发
request.getRequestDispatcher("/ElTest.jsp").forward(request, response);
}
}
package com.jialin.jstl;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 测试El表达式Servlet
* @author jialin
*
*/
public class ElServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Group group =
补充:web前端 , JavaScript ,