EL标记

本文详细介绍了EL表达式的使用方法,包括基本算术运算、关系运算、逻辑运算等,并通过实例展示了如何在JSP页面中应用EL表达式来访问JavaBean属性。
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 &lt; 201}</td>
     <td>${101 < 201}</td>
   </tr>
   <tr>
     <td>\${101 lt 201}</td>
     <td>${101 lt 201}</td>
   </tr>
   <tr>
     <td>\${101 &gt;201}</td>
     <td>${101 > 201}</td>
   </tr>
   <tr>
     <td>\${101 gt 201}</td>
     <td>${101 gt 201}</td>
   </tr>
   <tr>
     <td>\${101 &gt;= 201}</td>
     <td>${101 >= 201}</td>
   </tr>
   <tr>
     <td>\${101 ge 201}</td>
     <td>${101 ge 201}</td>
   </tr>
   <tr>
     <td>\${101 &lt;= 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' &lt; 'h'}</td>
     <td>${'e' < 'h'}</td>
   </tr>
   <tr>
     <td>\${"hip" &gt; "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 &gt; 21) &&(101 &lt; 201)}</td>
     <td>${(11 > 21) && (101 < 201)}</td>
   </tr>
   <tr>
     <td>\${(11 &gt; 21) and (101 &lt; 201)}</td>
     <td>${(11 > 21) and (101 < 201)}</td>
   </tr>
   <tr>
     <td>\${(11 &gt; 21) || (101 &lt; 201)}</td>
     <td>${(11 > 21) || (101 < 201)}</td>
   </tr>
   <tr>
     <td>\${(11 &gt; 21) || (101  &lt; 201)}</td>
     <td>${(11 < 21) or (101 < 201)}</td>
   </tr>
     <tr>
     <td>\${!(101  &lt; 201)}</td>
     <td>${!(101 < 201)}</td>
   </tr>
   <tr>
     <td>\${not (101 &lt; 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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值