jsp el表达式常用隐含对象详解-mile米乐体育
设计模式
2021年02月06日 15:32
1
1)与作用范围相关的隐含对象
与作用范围相关的 el 隐含对象有 pagescope、requestscope、sessionscope 和 applicationscope,分别可以获取 jsp 隐含对象 pagecontext、request、session 和 application 中的数据。 如果在 el 中没有使用隐含对象指定作用范围,则会依次从 page、request、session、application 范围查找,若找到就直接返回,不再继续找下去;如果所有范围都没有找到,就返回空字符串。获取数据的格式如下:${el隐含对象.关键字对象.属性}
或${el隐含对象.关键字对象}
例如:
arraylist其中,userbean 有两个属性 name 和 age,那么在对应视图 jsp 中 request 有效的范围内可以使用 el 取出 userbean 的属性,代码如下:users = new arraylist (); userbean ub1 = new userbean("zhang",20); userbean ub2 = new userbean("zhao",50); users.add(ub1); users.add(ub2); request.setattribute("array",users);
${array[0].name} ${array[0].age} ${array[1].name} ${array[1].age}
2)与请求参数相关的隐含对象
与请求参数相关的 el 隐含对象有 param 和 paramvalues。获取数据的格式如下:${el隐含对象.参数名}
例如,input.jsp 的代码如下:那么在 param.jsp 页面中可以使用 el 获取参数值,代码如下:
<%request.setcharacterencoding("gbk");%>
el隐含对象param、paramvalues
姓名:${param.username}兴趣: ${paramvalues.habit[0]} ${paramvalues.habit[1]} ${paramvalues.habit[2]}
示例
编写一个 controller,在该控制器类处理方法中使用 request 对象和 model 对象存储数据,然后从处理方法转发到 show.jsp 页面,在 show.jsp 页面中显示 request 对象的数据。 运行控制器的处理方法,在 ie 地址栏中输入“http://localhost:8080/springmvcdemo11/input”。程序运行结果如图 1 所示。1)创建控制器类
在 src 目录下创建一个名为 controller 的包,并在该包下创建一个名为 inputcontroller 的控制器类。代码如下:package controller; import javax.servlet.http.httpservletrequest; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.requestmapping; @controller public class inputcontroller { @requestmapping("/input") public string input(httpservletrequest request, model model) { string names[] = { "zhao", "qian", "sun", "li" }; request.setattribute("name", names); string address[] = { "beijing", "shanghai", "shenzhen" }; model.addattribute("address", address); return "show"; } }
2)创建 show.jsp 页面
在 web-inf 目录下创建 jsp 文件夹,在该文件夹中创建 show.jsp 页面。代码如下:<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%>insert title here 从controller转发过来的request内置对象的数据如下:
${requestscope.name[0]}
${requestscope.name[1]}
${requestscope.name[2]}
${requestscope.name[3]}
从controller转发过来的model对象的数据如下:
${address[0]}
${address[1]}
${address[2]}
展开全文