EL表达式和JSTL标签快速入门

来源:互联网 发布:报班学编程好找工作吗 编辑:程序博客网 时间:2024/04/28 09:23

1)EL表达式用于获取数据,在Jsp页面中可使用${标识符}的形式,通知jsp引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域中获取对象,如果域对象不存在标识符所对应的对象,则返回结果为”“(注意:不是null
2)EL表达式中也可以使用${customerBean.address}的形式开访问JavaBean对象的属性
3)EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断。
4)案例:
案例一:

<%        String data = "abce";        request.setAttribute("data",data);//假设这是从servlet转发来的数据    %>    ${data }<%-- pageContext.findAttribute("data") //page request session application--%>
案例二:
<%        Person p = new Person();        p.setName("aaa");        request.setAttribute("person",p);    %>    ${person.name }<%-- pageContext.findAttribute("person") --%>   
案例三:
    <%        Person p = new Person();        Address a = new Address();        a.setCity("shanghai");        p.setAddress(a);        request.setAttribute("person",p);    %>    ${person.address.city }
案例四:
    <%        List list = new ArrayList();        list.add(new Person("aaa"));        list.add(new Person("bbb"));        request.setAttribute("list",list);    %>    ${list[1].name }//迭代全部元素需要配合Jstl一起用    或者${list['1'].name }//取不到数据元素时,有时候加个单引号会达到效果
案例五:
<%        Map map = new HashMap();        map.put("aa", new Person("aa"));        map.put("bb", new Person("bb"));        map.put("cc", new Person("cc"));        request.setAttribute("map",map);    %>    ${map.bb.name }//若key全是数字,如“111”,${map['111'].name }     //在el表达式中取数据时,通常用.号,.号取不出来时,使用[]

5)${pageContext.request.contextPath }//得到当前web应用名称
6)JSTL标签库
__1JSTL是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
__2在页面中使用jstl标签需要完成以下2个步骤:
导入jstl.jar和standed.jar这两个JSTLjar文件。
在jsp页面中使用<%@taglib uri=”” prifix=”“%>元素导入标签库
__3JSTL标签库中常用标签:

    <c:forEach var="" items="">    <c:if test="">

7)使用jstl步骤:
__1stand.jar–> META-INF –>c.tld ->找到uri的值 –><%@taglib url=”uri” prifix=”c”%>
__2案例:
案例一:

    <%        List list = new ArrayList();        list.add(new Person("aaa"));        list.add(new Person("bbb"));        request.setAttribute("list",list);    %>    <c:forEach var="person" items="${list}">        ${person.name }<br/>    </c:forEach>
案例二:
<%        Map map = new HashMap();        map.put("aa", new Person("aa"));        map.put("bb", new Person("bb"));        map.put("cc", new Person("cc"));        request.setAttribute("map",map);    %>    <c:forEach var="entry" items="${map}">//map.entrySet() Set<Map.entry>        ${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="password"/>    </c:if>
案例四:
${param.参数名 }可以获取请求地址中参数的值
1 0
原创粉丝点击