JSTL中的EL表达式

本文通过具体的示例展示了如何在JSP页面中使用JSTL中的EL表达式来获取不同类型的对象属性,包括字符串、自定义对象、Map、数组、列表等,并测试了EL表达式的运算符支持及empty和HTML转义功能。

对JSTL中的EL表达式做下测试(具体过程可以参见尚学堂的视频)

前提:。

第一步:添加JstlElAction类

package com.bjsxt.struts;
/**
 * 测试EL表达式
 */
public class JstlElAction extends Action {

	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");
				
		//html
		request.setAttribute("htmlValue", "<font color='red'>html</font>");
				
		return mapping.findForward("success");
	}	
}

第二步:添加测试的jsp页面(jstl_el.jsp)

<%@ 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>
	 
	 <p>
	<li>测试html输出--self</li><br>
	html:${htmlValue}<br>
	<p>
	 
</body>
</html>

 

第三步:显示出来的结果如下:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值