对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>
第三步:显示出来的结果如下:


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

被折叠的 条评论
为什么被折叠?



