|
EL表达式也是jsp中比较常用的技术之一。EL表达式与jsp的小脚本相比有一定的好处
EL表达式也是jsp中比较常用的技术之一。EL表达式与jsp的小脚本相比有一定的好处。好处是:EL表达式可以在不用任何java代码的情况下作出相应的处理与输出,这样可以大大简化jsp页面的复杂度,使jsp页面更加的清爽(在jsp页面中要尽量少出现java代码,这样方便改错与后期的维护)。
首先我们讲一下,EL表达式的基本用法。
格式:${表达式}
现在我们可以开始学习EL表达式了。
(1) 基本的输出(out对象,EL的基本输出)
对于out对象我们已经比较熟悉了,它是用来在jsp页面中输出内容的。我们可以用EL表达式达到同样的效果。
把下面的代码复制到jsp中
<body>
out对象输出:<%out.println("helloWorld"); %><br>
EL对象的输出:${"helloWorld" }
</body>
|
获得结果是一样的

同样,EL表达式中可以加入相应的判断,来判断真假情况
<body>
out对象输出:<%out.println("helloWorld"); %><br>
EL对象的输出:${"helloWorld" }
<hr>
<!--> 是HTML的特殊字符,用于输出一个大于号(>)-->
java 表达式输出:1>2 是<%=1>2 %><br>
java 表达式输出:1>2是{1>2}
</body>
|
结果如图:当然还有其他的用法,我们在列举一些题目给大家

EL的保留字
1.算术运算符有五个:+、-、*或$、/或div、%或mod
2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符有三个:&&或and、||或or、!或not
代码如下:
<hr>
1+2 =${1+2}<br>
1-2 = ${1-2 }<br>
2*3 = ${2*3 }<br>
2$3 = ${2 $ 3 }<br>
4/2 = ${4/2 }<br>
4 div 2 = ${4 div 2 }<br>
5%3=${5%3 }<br>
5 mod 3 = ${5 mod 3 }<br>
5 eq 3=${5 eq 3 }<br>
true and true = ${true and true }<br>
<hr>
|
效果图如下:

EL中的四种变量范围,
在EL表达式中有四种变量范围,从小到大的顺序是page,request,session,application变量范围,要获得对应范围的变量,分别是pageScope,requestScope,sessionScope,applicationScope。
现在我们讲一个示例:代码如下:
<%
request.setAttribute("hello","helloWrold");
%>
Hello 中存放的值是:${hello};
|
这里没有用到任一个范围,实际上完全的写法应该是:
<%
request.setAttribute("hello","helloWrold");
%>
Hello 中存放的值是:${requestScope.hello};
|
如果不加任何范围,系统将会从page一直搜索到application,如果找到就显示其结果,如果找到最后都没有找到这个变量,就什么都不输出。
<%
request.setAttribute("hello","helloWrold");
%>
Hello 中存放的值是:${hello}<br>
Hello 中存放的值是:${requestScope.hello}<br>
world 中存放的值是:${world }<br>
|
效果如下:

其他范围变量示例代码:代码片段如下
<hr>
<%
request.setAttribute("req","request中的变量");
session.setAttribute("ses","session中的变量");
application.setAttribute("app","application中的变量");
pageContext.setAttribute("pag","page中的变量");
%>
page中变量是:${pageScope.pag }<br>
request中变量是:${requestScope.req }<br>
session中变量是:${sessionScope.ses }<br>
application中变量是:${applicationScope.app }<br>
<hr>
|
效果图如下
现在我们讲一下EL表达式的其他用法:
(1)获得表单里提交的数据
A:表单的代码,index.jsp.提交给doIndex.jsp
<form action="doIndex.jsp" name="form1">
<input type="text" name="txtName"><br>
<input type="password" name="txtPwd"><br>
<input type="submit" value="提交">
</form>
|
doIndex.jsp页面中的主要代码
<body>
用户名:${param.txtName}<br>
密码:${param.txtPwd }
</body>
|
代码中的param是专为获取表单中的值而使用的对象,param后面跟的是表单元素的name值,这样就可以获得对应表单中的值。结果如下:
这样就可以非常方便获得表单中的值.
(1) 通过EL表达式要获得对象中的值。
代码如下:创建实体类
package entity;
public class User {
private String name;
private String pwd;
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public User() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
|
Jsp页面的内容是:
<%@ page language="java" import="java.util.*,entity.*" pageEncoding="gbk"%>
<html>
<head>
<title>EL 显示对象中的数据</title>
</head>
<body>
<%
User user = new User();
user.setName("Tom");
user.setPwd("accp");
request.setAttribute("user",user);
%><br>
User中存放的数据是:<br>
用户名:${user.name }<br>
密码:${user.pwd }<br>
</body>
</html>
|
效果图如下:

下次我们将会介绍EL表达式的其他对象。
北大青鸟-中博www.njaccp.com
|