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 stubdoPost(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); //mapMap 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); } // ListList listUser = new ArrayList(); for (int i = 0; i <= 10; i++) {User usr = new User();usr.setName("戰三" + i);listUser.add(usr);} //放入requestrequest.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);} } jsp [html] <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <h1> <a href="servlet/ElServlet"></a>測試EL運算式 </h1> <li> 一般字元串 </li> <br /> Jsp指令碼:<%=request.getAttribute("hello")%><br /> EL運算式:${hello} <br /> RequestScope:${requestScope.hello} <li> 結構 </li> 使用者名稱:${user.name} <br /> 使用者年齡:${user.age } <br /> 使用者所屬組:${user.group.groupName } <br /> <li> Map </li> <br /> map.k1:${map.k1} <br /> map.k2:${map.k2 } <br /> <li> 數組 </li> <br /> arr[1]:${arr[1]}; <br /> <li> 對象數組 </li> user數組:${arrUser[4].name } <br /> <li> List </li> userList:${listUser[5].name} <br /> <br /> <li> 運算子 </li> 1+1=${1+1} <br /> 1*2=${1*2} <br /> 21/7=${21/7} <br /> 21 div 7=${21 div 7} <br /> 21 mode 7=${21 mod 7} <br /> 21 % 7=${21 % 7} <br /> <li> 測試Empty </li> <br /> v1:${empty v1 } <br /> v2:${empty v2 } <br /> v3:${empty v3 } <br /> v4:${empty v4 } <br /> v5:${empty v5 } <br /> </body> </html>