当前位置: 代码迷 >> JavaScript >> jstlEl表达式配备及使用
  详细解决方案

jstlEl表达式配备及使用

热度:501   发布时间:2012-11-13 10:00:50.0
jstlEl表达式配置及使用

* 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)

注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境
???? 是目前较为常用的环境

????
标签库的使用
* 采用taglib指令引入
<%@ taglib prefix="c"? uri="http://java.sun.com/jsp/jstl/core"%>?
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>


自定义函数库:
1、定义类和方法(方法必须是public static)
2、编写自定义tld文件,并且将此文件放到WEB-INF或WEB-INF任意子目录下
3、在jsp中采用taglib指令引入自定义函数库
4、采用 前缀+冒号+函数名 调用即可

Use.java

Java代码 复制代码
  1. package?com.bjsxt.struts; ??
  2. ??
  3. public?class?User?{ ??
  4. ???? ??
  5. ????private?String?username1; ??
  6. ???? ??
  7. ????private?int?age; ??
  8. ???? ??
  9. ????private?Group?group; ??
  10. ??
  11. ????public?String?getUsername()?{ ??
  12. ????????return?username1; ??
  13. ????} ??
  14. ??
  15. ????public?void?setUsername(String?username)?{ ??
  16. ????????this.username1?=?username; ??
  17. ????} ??
  18. ??
  19. ????public?int?getAge()?{ ??
  20. ????????return?age; ??
  21. ????} ??
  22. ??
  23. ????public?void?setAge(int?age)?{ ??
  24. ????????this.age?=?age; ??
  25. ????} ??
  26. ??
  27. ????public?Group?getGroup()?{ ??
  28. ????????return?group; ??
  29. ????} ??
  30. ??
  31. ????public?void?setGroup(Group?group)?{ ??
  32. ????????this.group?=?group; ??
  33. ????} ??
  34. ???? ??
  35. ???? ??
  36. }??
package com.bjsxt.struts;

public class User {
	
	private String username1;
	
	private int age;
	
	private Group group;

	public String getUsername() {
		return username1;
	}

	public void setUsername(String username) {
		this.username1 = username;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Group getGroup() {
		return group;
	}

	public void setGroup(Group group) {
		this.group = group;
	}
	
	
}




Group.java

Java代码 复制代码
  1. package?com.bjsxt.struts; ??
  2. ??
  3. public?class?Group?{ ??
  4. ???? ??
  5. ????private?String?name; ??
  6. ??
  7. ????public?String?getName()?{ ??
  8. ????????return?name; ??
  9. ????} ??
  10. ??
  11. ????public?void?setName(String?name)?{ ??
  12. ????????this.name?=?name; ??
  13. ????} ??
  14. }??
package com.bjsxt.struts;

public class Group {
	
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}



JstlElAction.java

Java代码 复制代码
  1. package?com.bjsxt.struts; ??
  2. ??
  3. import?java.util.ArrayList; ??
  4. import?java.util.HashMap; ??
  5. import?java.util.List; ??
  6. import?java.util.Map; ??
  7. ??
  8. import?javax.servlet.http.HttpServletRequest; ??
  9. import?javax.servlet.http.HttpServletResponse; ??
  10. ??
  11. import?org.apache.struts.action.Action; ??
  12. import?org.apache.struts.action.ActionForm; ??
  13. import?org.apache.struts.action.ActionForward; ??
  14. import?org.apache.struts.action.ActionMapping; ??
  15. ??
  16. /** ?
  17. ?*?测试EL表达式 ?
  18. ?*?@author?Administrator ?
  19. ?* ?
  20. ?*/??
  21. public?class?JstlElAction?extends?Action?{ ??
  22. ??
  23. ????@Override??
  24. ????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form, ??
  25. ????????????HttpServletRequest?request,?HttpServletResponse?response) ??
  26. ????????????throws?Exception?{ ??
  27. ????????//普通字符串 ??
  28. ????????request.setAttribute("hello",?"hello?world"); ??
  29. ???????? ??
  30. ????????//结构 ??
  31. ????????Group?group?=?new?Group(); ??
  32. ????????group.setName("尚学堂"); ??
  33. ???????? ??
  34. ????????User?user?=?new?User(); ??
  35. ????????user.setUsername("张三"); ??
  36. ????????user.setAge(18); ??
  37. ????????user.setGroup(group); ??
  38. ???????? ??
  39. ????????request.setAttribute("user",?user); ??
  40. ???????? ??
  41. ????????//map ??
  42. ????????Map?mapValue??=?new?HashMap(); ??
  43. ????????mapValue.put("key1",?"value1"); ??
  44. ????????mapValue.put("key2",?"value2"); ??
  45. ???????? ??
  46. ????????request.setAttribute("mapvalue",?mapValue); ??
  47. ???????? ??
  48. ????????//字符串数组 ??
  49. ????????String[]?strArray?=?new?String[]{"a",?"b",?"c"}; ??
  50. ????????request.setAttribute("strarray",?strArray); ??
  51. ???????? ??
  52. ????????User[]?users?=?new?User[10]; ??
  53. ????????for?(int?i=0;?i<10;?i++)?{ ??
  54. ????????????User?u?=?new?User(); ??
  55. ????????????u.setUsername("U_"?+?i); ??
  56. ????????????users[i]?=?u; ??
  57. ????????} ??
  58. ????????request.setAttribute("users",?users); ??
  59. ???????? ??
  60. ????????List?userList?=?new?ArrayList(); ??
  61. ????????for?(int?i=0;?i<10;?i++)?{ ??
  62. ????????????User?uu?=?new?User(); ??
  63. ????????????uu.setUsername("UU_"?+?i); ??
  64. ????????????userList.add(uu); ??
  65. ????????} ??
  66. ????????request.setAttribute("userlist",?userList); ??
  67. ???????? ??
  68. ????????//empty ??
  69. ????????request.setAttribute("value1",?null); ??
  70. ????????request.setAttribute("value2",?""); ??
  71. ????????request.setAttribute("value3",?new?ArrayList()); ??
  72. ????????request.setAttribute("value4",?"123456"); ??
  73. ????????return?mapping.findForward("success"); ??
  74. ????} ??
  75. ??
  76. ???? ??
  77. }??
package com.bjsxt.struts;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * 测试EL表达式
 * @author Administrator
 *
 */
public class JstlElAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//普通字符串
		request.setAttribute("hello", "hello world");
		
		//结构
		Group group = new Group();
		group.setName("尚学堂");
		
		User user = new User();
		user.setUsername("张三");
		user.setAge(18);
		user.setGroup(group);
		
		request.setAttribute("user", user);
		
		//map
		Map mapValue  = new HashMap();
		mapValue.put("key1", "value1");
		mapValue.put("key2", "value2");
		
		request.setAttribute("mapvalue", mapValue);
		
		//字符串数组
		String[] strArray = new String[]{"a", "b", "c"};
		request.setAttribute("strarray", strArray);
		
		User[] users = new User[10];
		for (int i=0; i<10; i++) {
			User u = new User();
			u.setUsername("U_" + i);
			users[i] = u;
		}
		request.setAttribute("users", users);
		
		List userList = new ArrayList();
		for (int i=0; i<10; i++) {
			User uu = new User();
			uu.setUsername("UU_" + i);
			userList.add(uu);
		}
		request.setAttribute("userlist", userList);
		
		//empty
		request.setAttribute("value1", null);
		request.setAttribute("value2", "");
		request.setAttribute("value3", new ArrayList());
		request.setAttribute("value4", "123456");
		return mapping.findForward("success");
	}

	
}



jstl_el.jsp

Java代码 复制代码
  1. <%@?page?language="java"?contentType="text/html;?charset=GB18030"??
  2. ????pageEncoding="GB18030"%> ??
  3. <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> ??
  4. <html> ??
  5. <head> ??
  6. <meta?http-equiv="Content-Type"?content="text/html;?charset=GB18030"> ??
  7. <title>测试EL表达式</title> ??
  8. </head> ??
  9. <body> ??
  10. ????<h1>测试EL表达式</h1><br> ??
  11. ????<hr> ??
  12. ????<li>普通字符串</li><br> ??
  13. ????hello(jsp脚本):<%=request.getAttribute("hello")?%><br> ??
  14. ????hello(el表达式,el表达式的使用方法$和{}):${hello?}<br> ??
  15. ????hello(el表达式,el的隐含对象pageScope,requestScope,sessionScope,applicationScope,<br>?如果未指定scope,它的搜索顺序为pageScope~applicationScope):${requestScope.hello?}<br> ??
  16. ????hello(el表达式,scope=session):${sessionScope.hello?}<br> ??
  17. ????<p> ??
  18. ????<li>结构,采用.进行导航,也称存取器</li><br> ??
  19. ????姓名:${user.username?}<br> ??
  20. ????年龄:${user.age?}<br> ??
  21. ????所属组:${user.group.name?}<br> ??
  22. ????<p> ??
  23. ????<li>输出map,采用.进行导航,也称存取器</li><br> ??
  24. ????mapvalue.key1:${mapvalue.key1?}<br> ??
  25. ????mapvalue.key2:${mapvalue.key2?}<br> ??
  26. ????<p> ??
  27. ????<li>输出数组,采用[]和下标</li><br> ??
  28. ????strarray[2]:${strarray[1]?}<br> ??
  29. ????<p> ??
  30. ????<li>输出对象数组,采用[]和下标</li><br> ??
  31. ????userarray[3].username:${users[2].username?}<br> ??
  32. ????<p> ??
  33. ????<li>输出list,采用[]和下标</li><br> ??
  34. ????userlist[5].username:${userlist[4].username?}<br> ??
  35. ????<p> ??
  36. ????<li>el表达式对运算符的支持</li><br> ??
  37. ????1+2=${1+2?}<br> ??
  38. ????10/5=${10/5?}<br> ??
  39. ????10?div?5=${10?div?5?}<br> ??
  40. ????10%3=${10?%?3?}<br> ??
  41. ????10?mod?3=${10?mod?3?}<br> ??
  42. ????<!-- ??
  43. ?????????==/eq ??
  44. ?????????!=/ne? ??
  45. ?????????</lt ??
  46. ?????????>/gt ??
  47. ?????????<=/le ??
  48. ?????????>=/ge ??
  49. ?????????&&/and ??
  50. ?????????||/or ??
  51. ?????????!/not ??
  52. ?????????//div ??
  53. ?????????%/mod ??
  54. ?????-->?? ??
  55. ?????<li>测试empty</li><br> ??
  56. ?????value1:${empty?value1?}<br> ??
  57. ?????value2:${empty?value2?}<br> ??
  58. ?????value3:${empty?value3?}<br> ??
  59. ?????value4:${empty?value4?}<br> ??
  60. ?????value4:${!empty?value4?}<br> ??
  61. </body> ??
  62. </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>测试EL表达式</title>
</head>
<body>
	<h1>测试EL表达式</h1><br>
	<hr>
	<li>普通字符串</li><br>
	hello(jsp脚本):<%=request.getAttribute("hello") %><br>
	hello(el表达式,el表达式的使用方法$和{}):${hello }<br>
	hello(el表达式,el的隐含对象pageScope,requestScope,sessionScope,applicationScope,<br> 如果未指定scope,它的搜索顺序为pageScope~applicationScope):${requestScope.hello }<br>
	hello(el表达式,scope=session):${sessionScope.hello }<br>
	<p>
	<li>结构,采用.进行导航,也称存取器</li><br>
	姓名:${user.username }<br>
	年龄:${user.age }<br>
	所属组:${user.group.name }<br>
	<p>
	<li>输出map,采用.进行导航,也称存取器</li><br>
	mapvalue.key1:${mapvalue.key1 }<br>
	mapvalue.key2:${mapvalue.key2 }<br>
	<p>
	<li>输出数组,采用[]和下标</li><br>
	strarray[2]:${strarray[1] }<br>
	<p>
	<li>输出对象数组,采用[]和下标</li><br>
	userarray[3].username:${users[2].username }<br>
	<p>
	<li>输出list,采用[]和下标</li><br>
	userlist[5].username:${userlist[4].username }<br>
	<p>
	<li>el表达式对运算符的支持</li><br>
	1+2=${1+2 }<br>
	10/5=${10/5 }<br>
	10 div 5=${10 div 5 }<br>
	10%3=${10 % 3 }<br>
	10 mod 3=${10 mod 3 }<br>
	<!--
		 ==/eq
		 !=/ne 
		 </lt
		 >/gt
		 <=/le
		 >=/ge
		 &&/and
		 ||/or
		 !/not
		 //div
		 %/mod
	 -->  
	 <li>测试empty</li><br>
	 value1:${empty value1 }<br>
	 value2:${empty value2 }<br>
	 value3:${empty value3 }<br>
	 value4:${empty value4 }<br>
	 value4:${!empty value4 }<br>
</body>
</html>




JstlCoreAction.java

Java代码 复制代码
  1. package?com.bjsxt.struts; ??
  2. ??
  3. import?java.util.ArrayList; ??
  4. import?java.util.HashMap; ??
  5. import?java.util.List; ??
  6. import?java.util.Map; ??
  7. ??
  8. import?javax.servlet.http.HttpServletRequest; ??
  9. import?javax.servlet.http.HttpServletResponse; ??
  10. ??
  11. import?org.apache.struts.action.Action; ??
  12. import?org.apache.struts.action.ActionForm; ??
  13. import?org.apache.struts.action.ActionForward; ??
  14. import?org.apache.struts.action.ActionMapping; ??
  15. ??
  16. /** ?
  17. ?*?测试jstl核心库 ?
  18. ?*?@author?Administrator ?
  19. ?* ?
  20. ?*/??
  21. public?class?JstlCoreAction?extends?Action?{ ??
  22. ??
  23. ????@Override??
  24. ????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form, ??
  25. ????????????HttpServletRequest?request,?HttpServletResponse?response) ??
  26. ????????????throws?Exception?{ ??
  27. ????????//普通属性 ??
  28. ????????request.setAttribute("hello",?"Hello?World"); ??
  29. ???? ??
  30. ????????//测试条件控制标签 ??
  31. ????????request.setAttribute("v1",?1); ??
  32. ????????request.setAttribute("v2",?2); ??
  33. ????????request.setAttribute("v3",?new?ArrayList()); ??
  34. ????????request.setAttribute("v4",?"test"); ??
  35. ???????? ??
  36. ????????//html文本 ??
  37. ????????request.setAttribute("bj",?"<font?color='red'>北京欢迎您</font>"); ??
  38. ???????? ??
  39. ???????? ??
  40. ????????//测试c:forEach ??
  41. ????????Group?group?=?new?Group(); ??
  42. ????????group.setName("尚学堂"); ??
  43. ???????? ??
  44. ????????List?userList?=?new?ArrayList(); ??
  45. ????????for?(int?i=0;?i<10;?i++)?{ ??
  46. ????????????User?user?=?new?User(); ??
  47. ????????????user.setUsername("user_"?+?i); ??
  48. ????????????user.setAge(18+i); ??
  49. ????????????user.setGroup(group); ??
  50. ????????????userList.add(user); ??
  51. ????????} ??
  52. ???????? ??
  53. ????????request.setAttribute("userlist",?userList); ??
  54. ???????? ??
  55. ????????//测试循环输出map ??
  56. ????????Map?map?=?new?HashMap(); ??
  57. ????????map.put("k1",?"v1"); ??
  58. ????????map.put("k2",?"v2"); ??
  59. ????????request.setAttribute("mapvalue",?map); ??
  60. ???????? ??
  61. ????????//测试c:forTokens ??
  62. ????????request.setAttribute("strTokens",?"1,2,3,4,5,6"); ??
  63. ????????return?mapping.findForward("success"); ??
  64. ????} ??
  65. ??
  66. }??
package com.bjsxt.struts;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * 测试jstl核心库
 * @author Administrator
 *
 */
public class JstlCoreAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//普通属性
		request.setAttribute("hello", "Hello World");
	
		//测试条件控制标签
		request.setAttribute("v1", 1);
		request.setAttribute("v2", 2);
		request.setAttribute("v3", new ArrayList());
		request.setAttribute("v4", "test");
		
		//html文本
		request.setAttribute("bj", "<font color='red'>北京欢迎您</font>");
		
		
		//测试c:forEach
		Group group = new Group();
		group.setName("尚学堂");
		
		List userList = new ArrayList();
		for (int i=0; i<10; i++) {
			User user = new User();
			user.setUsername("user_" + i);
			user.setAge(18+i);
			user.setGroup(group);
			userList.add(user);
		}
		
		request.setAttribute("userlist", userList);
		
		//测试循环输出map
		Map map = new HashMap();
		map.put("k1", "v1");
		map.put("k2", "v2");
		request.setAttribute("mapvalue", map);
		
		//测试c:forTokens
		request.setAttribute("strTokens", "1,2,3,4,5,6");
		return mapping.findForward("success");
	}

}




jstl_core.jsp

Java代码 复制代码
  1. <%@?page?language="java"?contentType="text/html;?charset=GB18030"??
  2. ????pageEncoding="GB18030"%> ??
  3. <%@?taglib?prefix="c"??uri="http://java.sun.com/jsp/jstl/core"%>???? ??
  4. <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd"> ??
  5. <html> ??
  6. <head> ??
  7. <meta?http-equiv="Content-Type"?content="text/html;?charset=GB18030"> ??
  8. <title>测试jstl核心库</title> ??
  9. </head> ??
  10. <body> ??
  11. ????<h1>测试jstl核心库</h1> ??
  12. ????<hr> ??
  13. ????<li>测试c:out</li><br> ??
  14. ????hello(default):<c:out?value="${hello}"/><br> ??
  15. ????hello(el表达式):${hello?}<br> ??
  16. ????hello(default="123"):<c:out?value="${abc}"?default="123"/><br> ??
  17. ????hello(default="123"):<c:out?value="${abc}">123</c:out><br> ??
  18. ????bj(defalut):<c:out?value="${bj}"/><br> ??
  19. ????bj(escapeXml="true"):<c:out?value="${bj}"?escapeXml="true"/><br> ??
  20. ????bj(escapeXml="false"):<c:out?value="${bj}"?escapeXml="false"/><br> ??
  21. ????bj(el表达式):${bj?}<br> ??
  22. ????<p> ??
  23. ????<li>测试c:set和c:remove</li><br> ??
  24. ????<c:set?value="123"?var="temp"/> ??
  25. ????temp:${temp?}<br> ??
  26. ????<c:remove?var="temp"/> ??
  27. ????temp:${temp?}<br> ??
  28. ????<p> ??
  29. ????<li>测试条件控制标签c:if</li><br> ??
  30. ????<c:if?test="${v1?lt?v2}"?var="v"> ??
  31. ????????v1小于v2<br>v=${v?}<br> ??
  32. ????</c:if> ??
  33. ????<c:if?test="${empty?v3}"> ??
  34. ????????v3为空<br> ??
  35. ????</c:if> ??
  36. ????<c:if?test="${empty?v4}"> ??
  37. ????????v4为空<br> ??
  38. ????</c:if> ??
  39. ????<p> ??
  40. ????<li>测试条件控制标签c:choose,c:when,c:otherwise</li><br> ??
  41. ????<c:choose> ??
  42. ????????<c:when?test="${v1?lt?v2}"> ??
  43. ????????????v1小于v2<br> ??
  44. ????????</c:when> ??
  45. ????????<c:otherwise> ??
  46. ????????????v1大于v2<br> ??
  47. ????????</c:otherwise> ??
  48. ????</c:choose> ??
  49. ????<c:choose> ??
  50. ????????<c:when?test="${empty?v4}"> ??
  51. ????????????v4为空<br> ??
  52. ????????</c:when> ??
  53. ????????<c:otherwise> ??
  54. ????????????v4不为空<br> ??
  55. ????????</c:otherwise> ??
  56. ????</c:choose> ??
  57. ????<p> ??
  58. ????<li>测试循环控制标签c:forEach</li><br> ??
  59. ????<table?border="1"> ??
  60. ????????<tr> ??
  61. ????????????<td>姓名</td> ??
  62. ????????????<td>年龄</td> ??
  63. ????????????<td>所属组</td> ??
  64. ????????</tr> ??
  65. ????????<c:choose> ??
  66. ????????????<c:when?test="${empty?userlist}"> ??
  67. ????????????????<tr> ??
  68. ????????????????????<td?colspan="3">没有符合条件的数据!</td> ??
  69. ????????????????</tr> ??
  70. ????????????</c:when> ??
  71. ????????????<c:otherwise> ??
  72. ????????????????<c:forEach?items="${userlist}"?var="u"> ??
  73. ????????????????????<tr> ??
  74. ????????????????????????<td>${u.username?}</td> ??
  75. ????????????????????????<td>${u.age?}</td> ??
  76. ????????????????????????<td>${u.group.name?}</td> ??
  77. ????????????????????</tr> ??
  78. ????????????????</c:forEach> ??
  79. ????????????</c:otherwise> ??
  80. ????????</c:choose> ??
  81. ????</table>?? ??
  82. ????<p>??? ??
  83. ????<li>测试循环控制标签c:forEach,varstatus</li><br> ??
  84. ????<table?border="1"> ??
  85. ????????<tr> ??
  86. ????????????<td>姓名</td> ??
  87. ????????????<td>年龄</td> ??
  88. ????????????<td>所属组</td> ??
  89. ????????</tr> ??
  90. ????????<c:choose> ??
  91. ????????????<c:when?test="${empty?userlist}"> ??
  92. ????????????????<tr> ??
  93. ????????????????????<td?colspan="3">没有符合条件的数据!</td> ??
  94. ????????????????</tr> ??
  95. ????????????</c:when> ??
  96. ????????????<c:otherwise> ??
  97. ????????????????<c:forEach?items="${userlist}"?var="user"?varStatus="vs"> ??
  98. ????????????????????<c:choose> ??
  99. ????????????????????????<c:when?test="${vs.count?%?2?==?0}"> ??
  100. ????????????????????????????<tr?bgcolor="red"> ??
  101. ????????????????????????</c:when> ??
  102. ????????????????????????<c:otherwise> ??
  103. ????????????????????????????<tr> ??
  104. ????????????????????????</c:otherwise> ??
  105. ????????????????????</c:choose> ??
  106. ?????????????????????????<tr> ??
  107. ????????????????????????????????<td> ??
  108. ????????????????????????????????????<c:out?value="${user.username}"/> ??
  109. ????????????????????????????????</td> ??
  110. ????????????????????????????????<td> ??
  111. ????????????????????????????????????<c:out?value="${user.age}"/> ??
  112. ????????????????????????????????</td> ??
  113. ????????????????????????????????<td> ??
  114. ????????????????????????????????????<c:out?value="${user.group.name}"/> ??
  115. ????????????????????????????????</td> ??
  116. ????????????????????????????</tr>????????????????? ??
  117. ????????????????</c:forEach> ??
  118. ????????????</c:otherwise> ??
  119. ????????</c:choose> ??
  120. ????</table> ??
  121. ????<p> ??
  122. ????<li>测试循环控制标签c:forEach,begin,end,step</li><br> ??
  123. ????<table?border="1"> ??
  124. ????????<tr> ??
  125. ????????????<td>姓名</td> ??
  126. ????????????<td>年龄</td> ??
  127. ????????????<td>所属组</td> ??
  128. ????????</tr> ??
  129. ????????<c:choose> ??
  130. ????????????<c:when?test="${empty?userlist}"> ??
  131. ????????????????<tr> ??
  132. ????????????????????<td?colspan="3">没有符合条件的数据!</td> ??
  133. ????????????????</tr> ??
  134. ????????????</c:when> ??
  135. ????????????<c:otherwise> ??
  136. ????????????????<c:forEach?items="${userlist}"?var="user"?begin="2"?end="8"?step="2"> ??
  137. ????????????????????<tr> ??
  138. ????????????????????????<td>${user.username}</td> ??
  139. ????????????????????????<td>${user.age}</td> ??
  140. ????????????????????????<td>${user.group.name?}</td> ??
  141. ????????????????????</tr> ??
  142. ????????????????</c:forEach> ??
  143. ????????????</c:otherwise> ??
  144. ????????</c:choose> ??
  145. ????</table>?? ??
  146. ????<p> ??
  147. ????<li>测试循环控制标签c:forEach,普通循环</li><br> ??
  148. ????<c:forEach?begin="1"?end="10"> ??
  149. ????????a<br> ??
  150. ????</c:forEach> ??
  151. ????<p> ??
  152. ????<li>测试循环控制标签c:forEach,输出map</li><br> ??
  153. ????<c:forEach??items="${mapvalue}"?var="v"> ??
  154. ????????${v.key?}=${v.value?}<br> ??
  155. ????</c:forEach> ??
  156. ????<p> ??
  157. ????<li>测试循环控制标签c:forTokens</li><br> ??
  158. ????<c:forTokens?items="${strTokens}"?delims=","?var="v"> ??
  159. ????????${v?}<br> ??
  160. ????</c:forTokens> ??
  161. ????<p> ??
  162. ????<li>测试c:catch</li><br> ??
  163. ????<% ??
  164. ????????try?{ ??
  165. ????????????Integer.parseInt("asdfsdf"); ??
  166. ????????}catch(Exception?e)?{ ??
  167. ????????????out.println(e.getMessage()); ??
  168. ????????}??? ??
  169. ????%> ??
  170. ????<p> ??
  171. ????<c:catch?var="exinfo"> ??
  172. ????????<% ??
  173. ????????????Integer.parseInt("asdfsdf"); ??
  174. ????????%> ??
  175. ????</c:catch> ??
  176. ????${exinfo?}<br> ??
  177. ????<p> ??
  178. ????<li>测试c:import</li><br> ??
  179. ????<c:import?url="http://localhost:8080/struts_login"/> ??
  180. ????<p> ??
  181. ????<li>测试c:url和c:param</li><br> ??
  182. ????<c:url?value="http://localhost:8080/drp/sysmgr/user_add.jsp"?var="v"> ??
  183. ????????<c:param?name="username"?value="Jack"/> ??
  184. ????????<c:param?name="age"?value="20"/> ??
  185. ????</c:url> ??
  186. ????${v?}<br> ??
  187. ????<li>测试:redirect</li><br> ??
  188. ????<c:redirect?context="/struts_login"?url="/index.jsp"/> ??
  189. </body> ??
  190. </html>??
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>    
<!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>测试jstl核心库</title>
</head>
<body>
	<h1>测试jstl核心库</h1>
	<hr>
	<li>测试c:out</li><br>
	hello(default):<c:out value="${hello}"/><br>
	hello(el表达式):${hello }<br>
	hello(default="123"):<c:out value="${abc}" default="123"/><br>
	hello(default="123"):<c:out value="${
 
  相关解决方案