jsp—EL表达式
程序员文章站
2022-04-07 19:09:36
...
EL表达式(Expression Language)
语法: ${ }
主要作用
- 获取(域对象中的)数据
- EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象,获取数据。(某个web域中的对象,访问JavaBean的属性,访问list集合,访问map集合,访问数组)
- 执行运算
- 利用EL表达式可以在JSP页面中执行一些基本的关系运算,逻辑运算和算术运算,以在jsp页面中完成一些简单的逻辑运算。${user==null}
- 获取web开发常用对象
- EL表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
- 调用java方法
- EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用java类的方法。
获取域对象中的数据
获取域对象中的值
<h3>获取域对象中的值</h3>
<!--Demo1.jsp-->
<%
request.setAttribute("name","美眉");
pageContext.setAttribute("name","航航")
%>
<!--默认从最小的域中获取对象的值-->
${name}
${requestScope.name}
获取域中数组的值
<h4>域中数组的值</h4>
<%
String[] arrs={"meimei","hanghang","dongdong","mingming"};
request.setAttribute("arrs",arrs);
%>
<!--通过数组的索引获取值-->
${arr[2]}
获取域中集合的值
<h4>域中集合的值</h4>
<%
List<String> list=new ArrayList();
list.add("meimei");
list.add("xioaqiqng");
request.setAttribute("list",list);
%>
<!--相当于map的put操作,key是String类型,value是Object类型-->
<!--取出xiaoqing-->
${list[1]}
获取域中Map集合的值
<h4>域中Map集合的值</h4>
<%
Map<String ,String> map = new HashMap<String,String>();
map.put("aa","xiaomei");
map.put("bb","xioawang");
//特殊字符key--cc/dd--cc$dd等
map.put("cc.dd","xioameng");
%>
<!--获取xiaomei-->
${map.aa}
<!--获取特殊字符作为key的value值-->
${map["cc.dd"]}
获取集合中的自定义对象
<h4>域中集合中有自定义对象</h4>
<%
List<User> uList = new ArrayList<User>();
uList.add(new User("zhongguo","123"));
uList.add(new User("yingguo","456"));
request.setAttribute("uList",uList);
%>
<!--uList[1]相当于拿到了集合中的对象,uList[1].属性名-->
${uList[1].username}
执行运算
算术运算
<h4>算术运算</h4>
<%
request.setAttribute("n1",11);
request.setAttribute("n2",22);
request.setAttribute("n3",33);
request.setAttribute("n4",44);
%>
${n1+n2}
<!--输出33-->
关系运算
${n2>n2}
<!--转义符号大于-->
${n1 gt n2}
<!--转义小于-->
${n1 lt n2}
${n1 < n2}
<!--转义等于-->
${n1==n2}
${n1 eq n2}
<!--转义不等于-->
${n1 != n2}
${n1 ne n2}
<!--大于等于-->
${n1>=n2}
${n1 ge n2}
<!--小于等于-->
${n1<=n2}
${n1 le n2}
逻辑运算
<!--与运算-->
${n1>n2 && n3>n4}
${n1>n2 and n3>n4}
<!--或运算-->
${n1>n2 || n3>n4}
${n1>n2 or n3>n4}
<!--非运算-->
${! (n1>n2)}
${not (n1>n2)}
获取web开发中的对象
- pageContext : 对应于JSP页面中的pageContext对象(取的是pageContext对象)
- pageScope: 代表page域中用于保存属性的Map对象
- requestScope: 代表request域中用于保存属性的Map对象
- sessionScope :代表session域中用于保存属性的Map对象
- applicationScope :代表application域中用于保存属性的Map对象
- param : 表示一个保存了所有请求参数的Map对象
- paramValues : 表示一个保存了所有请求参数的Map对象,它用于某个请求参数,返回的是一个String[]
- header : 表示一个保存了所有http请求头字段的Map对象
- headerValues : 返回String[]数组,注意:如果头里面有“-”,例Accept-Encoding,则要headerValues[“Accept-Encodings”]
- cookie : 表示一个保存了所有cookie的Map对象
- initParam : 表示一个保存了所有web应用初始化参数的map对象
<!--表单-->
<form action="/JSPDemo/el/demo1.jsp">
姓名:<input type="text" name="username"/><br/>
<input type="submit" value="登录"/>
</form>
<!--demo1.jsp-->
${param.username}
<!--获取请求头-->
${header.referer}
<!--获取全局初始化参数-->
<!--web.xml中配置全局初始化参数-->
<context-param>
<param-name>username</param-name>
<param-vakue>root</param-value>
</context-param>
<!--在demo1.jsp中-->
${initparam.username}
<!--输出root-->
<!--获取cookie-->
<!--cookie名为last-->
${cookie.last.name}
<!--pageContext-->
<!--pageContext.request 相当于获取到request对象-->
<!--获取IP-->
${pageContext.request.remoteAddr}
<!--获取虚拟路径-->
${pageContext.request.contextPath}
<!--动态获取虚拟路径-->
上一篇: Wrath (思维模拟)
下一篇: 简化思维,避免模拟