接着上一篇博文 从四开始
JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件
- 有一个public默认构造器(例如无参构造器)
- 属性使用public 的get,set方法访问,也就是说设置成private同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
- 需要序列化。这个是框架,工具跨平台反映状态必须的
- EL可以通过${key.属性}的方式获取到指定值,其底层实际调用的是该对象的相应属性的get方法
package linjie.com;
/*
*Bean
*/
public class Demo {
private String name;
private int age;
public Demo(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return super.toString();
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="linjie.com.Demo"
pageEncoding="UTF-8"%>
Insert title here
<%
Demo test=new Demo("linjie",12);
request.setAttribute("ELttt", test);
%>
name=${requestScope.ELttt.name }
age=${requestScope.ELttt.age }
names=${requestScope.ELtttxx.name }
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
String[] names={"xlj","lucy","king"};
pageContext.setAttribute("names", names);
%>
name[1]=${names[1] }
names[5]=${names[5] }
package linjie.com;
/*
*Bean
*/
public class Stu {
private String sname;
private String address;
public Stu() {
super();
}
public Stu(String sname, String address) {
super();
this.sname = sname;
this.address = address;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return super.toString();
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="linjie.com.*"
pageEncoding="UTF-8"%>
Insert title here
<%
Stu[] stus=new Stu[3];
stus[0]=new Stu("xlj","A");
stus[1]=new Stu("lucy","B");
stus[2]=new Stu("kingA","C");
pageContext.setAttribute("stus",stus);
%>
stus[1].Sname=${stus[1].sname }
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
List names=new ArrayList();
names.add("xlj");
names.add("lucy");
pageContext.setAttribute("names", names);
%>
names[1]=${names[1] }
注意:
EL可以通过索引访问List,但无法访问Set。因为Set中没有索引概念
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
Map map=new HashMap();
map.put("age", 20);
map.put("name", "xlj");
pageContext.setAttribute("map", map);
%>
name=${map.name }
age=${map.age }
1、先说说几个常用运算符
- 算术运算符:+、-、*、/、%(不支持++、–)
- 关系运算符:==、!=、>、>=、<、<=
- 逻辑运算符:!、&&、||、not、and、or
- 条件运算符:?:
- 取值运算符:[]、点号
2、empty运算符
- 用法为${empty 变量},结果为布尔值
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
String name1=null;
String name2="";
List name3=new ArrayList();
pageContext.setAttribute("name1", name1);
pageContext.setAttribute("name2", name2);
pageContext.setAttribute("name3", name3);
%>
empty对于没有定义的变量,运算结果为true:
empty namex=${empty namex }
empty对于null的引用,运算结果为true:
empty name1=${empty name1 }
empty对于为空串的String引用,运算结果为true:
empty name2=${empty name2 }
empty对于没有元素的数组或集合,运算结果为true:
empty name3=${empty name3 }
具体可以看引用的博文 讲述 ,我现在还没有用到自定义EL函数 ,所以暂时不写这里, 等用的时候写在这里, 会更加有印象