zoukankan      html  css  js  c++  java
  • JSTL 和 EL

    EL表达式   Expression Language

    语法${作用域中的值}

    使用EL表达式时,需要在page标签中写上isELIgnored="false",否则EL表达式不生效。

    EL表达式在底层寻址对象时会加上get并将属性名首字母大写。而且很多java程序在底层寻址对象时都是找到对象的get,set方法并非去找改对象。

    EL表达式查询范围:从小范围到大范围,如果不同作用域有同名的变量昵称,以最小的作用域为准。

    EL表达式获取普通属性

    1.向作用域中添加一个普通属性,

     <% request.setAttribute("uname","李明"); %>

    2.使用EL表达式获取作用域的key。

    ${uname}

    EL表达式获取对象属性

    1.创建一个对象,将对象写入作用域中。

        <%
        User user=new User(); user.setName("猪猪侠"); user.setAge(16);
    %>

    2.使用EL表达式获取作用域的key.对象的属性。不需要加get。

    ${user.name}

    EL表达式获取list和map集合

    1.创建集合,放入作用域中,

         
    <%
         User user=new User(); user.setName("猪猪侠"); user.setAge(16); User user2=new User(); user2.setName("猪猪侠2"); user2.setAge(19); List<User> list=new ArrayList<User>(); list.add(user); list.add(user2); Map<String,User> map=new HashMap<String, User>(); map.put("一号",user); map.put("二号",user2); request.setAttribute("list",list); request.setAttribute("map",map);
    %>

    2..EL表达式获取集合属性时为:key[下标].属性名

    ${ list[1].name}
    <br>
    ${map["二号"].name}

    JSTL Java Standard Tag Library (java标准标签库)

    使用JSTL需要两个jar包和标签库描述符文件(.tld文件),在java高版本无需引jar,在低版本和非eclipse和myeclipse外的一些软件需要手动引入jar包。

    需要使用taglib标签:<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    JSTL可以和EL表达式混合使用

    通用标签

    set:用于设置指定范围的变量值

    <c:set var="变量名" valuue="变量值" scope="作用域名"></c:set>

    <c:set var="name" value="二傻" scope="page"></c:set>
    ${name}

    out:计算表达式并将结果输出显示

    <c:out value="需要输出的值"></c:out>

    如果value写的是set标签中的var,他会看成是四个字母输出,所以需要使用到EL表达式进行混合输出。

    <c:set var="name" value="二傻" scope="page"></c:set>
    <c:out value="${name}"></c:out>

    out输出超链接:

    out输出超链接需要用到 escapeXml。

    escapeXml有四个取值  true(不对超链接进行转换转义,原模原样输出)  默认值(不对超链接进行转换转义,原模原样输出)  Y(对超链接进行转换转义,解析成一个可以点的超链接)  false(对超链接进行转换转义,解析成一个可以点的超链接)

    <c:out escapeXml="false" value="<a href='http://www.baidu.com'>百度</a>"></c:out>

    使用true或默认值的结果:

    使用Y或false的结果:

  • 相关阅读:
    Qt中修改QtoolTip的样式
    字符编码笔记:ASCII、Unicode和UTF-8
    UML类图关系模式(C++代码说明)
    sql标签和include标签的使用
    mybatis动态SQL标签的用法
    <!CDATA[ ....... ]] > 用法详解
    Mybatis 中$与#的区别
    枚举
    ExtJs如何判断form表单是否被修改过详解
    Extjs二级联动combo省城市
  • 原文地址:https://www.cnblogs.com/java-263/p/10124624.html
Copyright © 2011-2022 走看看