el 表达式和jstl标签快速入门
el表达式:
1.el表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,
以标识符为关键字从各个域对象 中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是NULL)。
示例:使用EL表达式获取page、 request、session、applection域中的数据。
2.EL表达式中也可以使用${customerBean.address}的形式来访问javaBean对象的属性。
示例:使用EL表达式获取Bean属性。
3.结合JSTL标签,EL表达式也可轻松获取各种集合的元素。
示例:使用EL表达式获取List、Map集合中的元素。
4.EL表达式也可使用类如$(1==1)的形式进行简单的逻辑判断。
示例代码:
<%---从EL表达式获取属性的值 --%>
<%
String name = "aaaaaaaa";
request.setAttribute("name",name);
%>
${name}
<!--pageContext.findAttribute("name") page request session application-->
<br />
<%---从EL表达式获取对象的属性 --%>
<%
Person p = new Person();
p.setName("zengxiansheng");
request.setAttribute("p",p);
%>
${p.name}
<br />
<%--复杂javaBean 中获取数据 --%>
<%
Person p1 = new Person();
Address a = new Address();
a.setCity("上海");
p1.setAddress(a);
request.setAttribute("p1",p1);
%>
${p1.address.city }
<br />
<%
List list = new ArrayList();
list.add(new Person("aa"));
list.add(new Person("bb"));
list.add(new Person("cc"));
request.setAttribute("list",list);
%>
${list[1].name }
<br />
<%
Map map = new HashMap();
map.put("aa",new Person("aaaaaaa"));
map.put("bb",new Person("bbbbbbb"));
map.put("cc",new Person("ccccccc"));
map.put("111",new Person("edddddd"));
request.setAttribute("map",map);
%>
${map.aa.name }
${map['111'].name } <!-- 数字访问不用.用中括号括起来,要加单引或双引 -->
<br />
${pageContext.request.contextPath } <!-- 获取当前 web 应用的名称 :day1 -->
jstl标签库:
1.JSTL 是 sun 公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
2.在页面中使用JSTL标签需要完成以下2个步骤。
1.导入jstl.jar和standerd.jar这两个jslt的jar 文件。
2.在JSP页面中使用<%@taglib uri="" prefix="" %>元素导入标签库。
3.JSTL标签库中常用标签:
<c:foreach var ="单个对象名" items ="集合或数组名"></foreach>
<c:if test="条件">
示例代码:
<!--遍历 list 集合获取数据-->
<%
List list = new ArrayList();
list.add(new Person("aa"));
list.add(new Person("bb"));
list.add(new Person("cc"));
request.setAttribute("list",list);
%>
//遍历 list 集合
<c:forEach var="Person" items="${list}">
${Person.name} <br/>
</c:forEach>
<!--遍历 Map 集合获取数据-->
<%
Map map = new HashMap();
map.put("aa",new Person("aaaaaaa"));
map.put("bb",new Person("bbbbbbb"));
map.put("cc",new Person("ccccccc"));
map.put("111",new Person("edddddd"));
request.setAttribute("map",map);
%>
<c:forEach var="entry" items="${map}">
${entry.key } : ${entry.value.name}<br/>
</c:forEach>
<!--判断用户是否登录 ,不为空就是登录 -->
<c:if test="${user!=null}">
欢迎:${user.userName }登录!
</c:if>
<!--为空就是没登录登录 -->
<c:if test="${user==null}">
用户名:<input type="text"/>
密码:<input type="text"/>
</c:if>