param和paramValues对象
在JSP页面中,经常需要获取客户端传递的请求参数,为此,EL表达式提供了param和paramValues两个隐式对象,这两个隐式对象专门用于获取客户端访问JSP页面时传递的请求参数。接下来针对这两个对象进行讲解,具体如下:
1、param对象
param对象用于获取请求参数的某个值,它是Map类型,与request.getParameter()方法相同,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。param对象的语法格式比较简单,具体示例如下:
${param.num}
2、paramValues对象
如果一个请求参数有多个值,可以使用paramValues对象来获取请求参数的所有值,该对象用于返回请求参数所有值组成的数组,如果要获取某个请求参数的第一个值,可以使用如下代码:
${paramValues.nums[0]}
为了让初学者更好的学习这两个隐式对象,接下来通过一个案例来演示param和paramValues隐式对象如何获取请求参数的值,如例1所示。
例1 param.jsp
1 <%@ page language="java" contentType="text/html; charset=utf-8"
2 pageEncoding="utf-8"%>
3 <html>
4 <head></head>
5 <body>
6 <body style="text-align: center;">
7 <form action="${pageContext.request.contextPath}/param.jsp">
8 num1:<input type="text" name="num1"><br>
9 num2:<input type="text" name="num"><br>
10 num3:<input type="text" name="num"><br>
11 <input type="submit" value="提交" />
12 <input type="submit" value="重置" /><p><hr>
13 num1:${param.num1}<br>
14 num2:${paramValues.num[0]}<br>
15 num3:${paramValues.num[1]}<br>
16 </form>
17 </body>
18 </html>
打开IE浏览器,在地址栏中输入http://localhost:8080/chapter07/param.jsp
访问param.jsp页面,此时,浏览器窗口中会显示一个表单,在这个表单输入三个数字,分别为10、20、30,然后点击提交按钮,浏览器窗口中显示的结果如图1所示。
图1 param.jsp
从图1可以看出,输入的三个数字全部都在浏览器中显示了,这是因为在例程7-7中使用param对象获取了请求参数num1的值为10,使用paramValues对象获取了同一个请求参数num的两个值,分别为20和30。需要注意的是,如果一个请求参数有多个值,那么在使用param获取请求参数时,则返回请求参数的第一个值。