EL标记
EL标记为了方便的输出表达式的值和变量的值 核心作用:减少Java代码在jsp页面中 方便jsp页面中代码的修改,也方便美工修改页面外观
1算法
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${2.2 + 8.3}</td>
<td>${2.2 + 8.3}</td>
</tr>
<tr>
关系运算输出
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${101 < 201}</td>
<td>${101 < 201}</td>
</tr>
<tr>
<td>\${101 lt 201}</td>
<td>${101 lt 201}</td>
</tr>
<tr>
<td>\${101 >201}</td>
<td>${101 > 201}</td>
</tr>
<tr>
<td>\${101 gt 201}</td>
<td>${101 gt 201}</td>
</tr>
<tr>
<td>\${101 >= 201}</td>
<td>${101 >= 201}</td>
</tr>
<tr>
<td>\${101 ge 201}</td>
<td>${101 ge 201}</td>
</tr>
<tr>
<td>\${101 <= 201}</td>
<td>${101 <= 201}</td>
</tr>
<tr>
<td>\${101 le 201}</td>
<td>${101 le 201}</td>
</tr>
<tr>
<td>\${101 == 101}</td>
<td>${101 == 101}</td>
</tr>
<tr>
<td>\${101 eq 101}</td>
<td>${101 eq 101}</td>
</tr>
<tr>
<td>\${101 != 101}</td>
<td>${101 != 101}</td>
</tr>
<tr>
<td>\${101 ne 101}</td>
<td>${101 ne 101}</td>
</tr>
<tr>
<td>\${'e' < 'h'}</td>
<td>${'e' < 'h'}</td>
</tr>
<tr>
<td>\${"hip" > "hit"}</td>
<td>${"hip" > "hit"}</td>
</tr>
</table>
<td>${'${'}2.2 + 8.3}</td>
<td>${2.2 + 8.3}</td>
</tr>
<tr>
<td>\${14 - 0.2}</td>
<td>${14 - 0.2}</td>
</tr>
<tr>
<td>\${10.4 *4}</td>
<td>${10.4 *4}</td>
</tr>
<tr>
<td>\${10/3}</td>
<td>${10/3}</td>
</tr>
<tr>
<td>\${10 div 3}</td>
<td>${10 div 3}</td>
</tr>
<tr>
<td>\${10%3}</td>
<td>${10%3}</td>
</tr>
<tr>
<td>\${10 mod 3}</td>
<td>${10 mod 3}</td>
</tr>
<tr>
<td>\${12/0}</td>
<td>${12/0}</td>
</tr>
<tr>
<td>\${12 div 0}</td>
<td>${12 div 0}</td>
</tr>
</table>
逻辑运算输出
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${(11 > 21) &&(101 < 201)}</td>
<td>${(11 > 21) && (101 < 201)}</td>
</tr>
<tr>
<td>\${(11 > 21) and (101 < 201)}</td>
<td>${(11 > 21) and (101 < 201)}</td>
</tr>
<tr>
<td>\${(11 > 21) || (101 < 201)}</td>
<td>${(11 > 21) || (101 < 201)}</td>
</tr>
<tr>
<td>\${(11 > 21) || (101 < 201)}</td>
<td>${(11 < 21) or (101 < 201)}</td>
</tr>
<tr>
<td>\${!(101 < 201)}</td>
<td>${!(101 < 201)}</td>
</tr>
<tr>
<td>\${not (101 < 201)}</td>
<td>${not (101 < 201)}</td>
</tr>
</table>
empty判断是否为空
<%
pageContext.setAttribute("username",null);
pageContext.setAttribute("password","");
pageContext.setAttribute("city","北京");
pageContext.setAttribute("birthDate",new Date());
%>
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${empty $username}</td>
<td>${empty username}</td>
</tr>
<tr>
<td>\${empty password}</td>
<td>${empty password}</td>
</tr>
<tr>
<td>\${empty city}</td>
<td>${empty city}</td>
</tr>
<tr>
<td>\${empty birthDate}</td>
<td>${empty birthDate}</td>
</tr>
<tr>
<td>\${empty birthDate}</td>
<td>${(empty birthDate)?"空":"非空"}</td>
</tr>
</table>
引用自创的javaBean到页面中
建立三个类
package webbook.beanutils.example;
public class User {
private Long userId;
private String username;
private String password;
private Profile profile; //声明一个对象变量
//get和set方法
}
package webbook.beanutils.example;
import java.util.Date;
import java.util.Map;
public class Profile {
private Map<String, String> phone; //声明一个集合对象
private Address[] address; //声明一个对象的集合
private Date birthDate;
private String email;
}
package webbook.beanutils.example;
public class Address {
private String postCode;
private String country;
private String city;
private String addr;
public Address() {
}
public Address(String country, String city, String postCode, String addr) {
this.country = country;
this.city = city;
this.postCode = postCode;
this.addr = addr;
}
}
把类引入到jsp页面中
charset=UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="webbook.beanutils.example.*" %>
<html>
在jsp页面中建立一个实例 并且设置其属性
<jsp:useBean id="user" class="webbook.beanutils.example.User"/>
<jsp:setProperty name="user" property="username" value="刘伟"/>
在jsp页面中输出
<h2>JSP EL使用例子(五)</h2>
<br>
//建立一个实例 好比User user=new User();相似
<jsp:useBean id="user" class="webbook.beanutils.example.User"/>
//设置其username属性 user.setUsername()相似
<jsp:setProperty name="user" property="username" value="刘伟"/>
<%
Profile p = new Profile(); //建立一个实例
p.setEmail("web@v512.com"); //设置属性的值
Map<String,String> phone = new HashMap<String,String>(); //建立一个MAP集合对象
phone.put("office","82826905"); //给map对象按键值对的方式赋值
p.setPhone(phone); //把集合对象赋值到p对象去
Address address = new Address(); //建立一个对象
address.setCity("北京"); //设置值
Address[] addresses = {address}; //把对象address加入到数组中去
p.setAddress(addresses); //把数组对象赋值给p对象的setAddress去
user.setProfile(p); //把p对象加入到user对象的set方法去
%>
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${user.username}</td>
<td>${user.username }</td>
</tr>
<tr>
<td>\${user["username"]}</td>
<td>${user["username"]}</td>
</tr>
<tr>
<td>\${user.profile.phone.office}</td>
<td>${user.profile.phone.office}</td>
</tr>
<tr>
<td>\${user["profile"]["phone"]["office"]}</td>
<td>${user["profile"]["phone"]["office"]}</td>
</tr>
<tr>
<td>\${user.profile.address[0].city}</td>
<td>${user.profile.address[0].city }</td>
</tr>
<tr>
<td>\${user["profile"]["address"][0]["city"]}</td>
<td>${user["profile"]["address"][0]["city"]}</td>
</tr>
</table>
${user['profile']['address']["0"]['city']}
</body>
</html>
获取表单的例子 paramValues.参数[]---获取数组的值 param.参数 --单一的值
<h2>JSP EL使用例子(七)</h2>
<form action="elExample7Handler.jsp" method="post">
<table>
<tr><td>你的性别:</td>
<td>
<select name="gender">
<option>男</option>
<option>女</option>
<option>未知</option>
</select>
</td>
</tr><tr>
<td valign="top">你喜欢的体育运动:</td>
<td>
<input type="checkbox" name="sport" value="足球">足球
<input type="checkbox" name="sport" value="游泳">游泳
<input type="checkbox" name="sport" value="跑步">跑步
</td>
</tr><tr>
<td colspan="2">
<input type="submit" value="提交">
</td></tr>
</table>
</form>
</body>
</html>
获取表单的jsp
<body>
<h2>JSP EL使用例子(七)</h2>
<br>
<table border="1">
<tr>
<td><b>EL表达式</b></td>
<td><b>输出结果</b></td>
</tr>
<tr>
<td>\${param.gender}</td>
<td>${param.gender}</td>
</tr>
<tr>
<td>\${param["gender"]}</td>
<td>${param["gender"]}</td>
</tr>
<tr>
<td>\${paramValues.sport[1]}</td>
<td>${paramValues.sport[1]}</td>
</tr>
</table>
</body>