7.19总结

EL表达式

最常用的方式:作用域中存储的:名.属性名  eg:${paramName.id}(paramName对应作用域中的名字,ID对应Java类中的属性名)

四大作用域取值顺序:按作用域从小到大取pageContext>requset>session>application(注意:session在没关闭浏览器前,一直存在,所以取不到application中的值)

分别取对应作用域的值:作用域名+Scope.属性名  eg:requsetScope.paramName.id;(id根据实际情况决定写不写)

param和paramValues: 

  param:取 路径?后的参数   eg:http://localhost:8080/day719/testEL01.jsp?uname=aaa,取得是aaa

    语法:${param.uname}  相当于request.getParameter("uname");

  paramValues:取同名参数的所有值,装在string数组中     eg:http://localhost:8080/day719/testEL01.jsp?fav=1&fav=2

    语法:${paramValues.fav}取整个数组,打印一串:[Ljava.lang.String;@463e88

       ${paramValues.fav[0]}取数组中的第一个元素

       ${paramValues.fav[1]}取数组中的第二个元素

       。。。。。。

EL实现变量类型的自动转换:只要涉及“+”就会尝试将其转换成数字,除法和js一样

   eg:${100+100}值200       ${"100"+100}值200       ${"100abc"+100}会报NumberFormatException     ${null+“”}值0

以[]的形式获取值:动态获取要显示的内容   这是中括号的优势

  与文档第一种获取方式对比:

    省:${person1.addr.province }

    市:${person1.addr.city }
    县:${person1.addr.county }

    <hr/>
    省:${person1.addr["province"] }
    市:${person1.addr["city"]}
    县:${person1.addr["county"] }

list和map的取值:先要将list或map用setAttribute设置到作用域中(这一步一定要记住,因为EL就是负责在作用域中取值)

  具体取值方法:${list[0]} list是存放在作用域中的名   eg:session.setAttribute("list", list);

         ${list[1]}

         <hr/>
         ${map.a} a代表map中的键
         ${map.b} b代表map中的键

empty:判断作用域中名对应的值是否为空,是返回true,不为空返回false

JavaBean:

  request.setAttribute("stu", student);
  ${stu.handsome} handsome是javaBean类中的属性
  ${stu.name}name是javaBean类中的属性
  ${stu.sId}sId是javaBean类中的属性
  ${stu.Gender}Gender是javaBean类中的属性

JSTL标签库:他是

  首先记得要引入标签  prefix 标签的缩写   uri  标签的地址

  c标签:所有属性如图:

    

  out:

    属性有:value (值可以直接写,也可以写el表达式),

    default(当value中值为空时,默认显示default中的值),

    escapeXml( 默认是true  不解析  xml   改为false 过后  解析xml)

  set:属性有:value() 对象的值

    target目标对象 用el表达式来写    property 对象的属性名    

  remove:

    remove   可以指定删除哪个作用域的   scope    如果不指定   所有var 写的属性名 都删除

  if:相当于 if语句 里面的test 都写 el表达式(只能是boolean类型),var里表示test中EL表达式返回值,scope指定作用域

 

  choose:下面的c:when 相当于 if 和else if c:otherwise 相当于 else 

    里面的test 都写 el表达式(只能是boolean类型)

  forEach:

    items 被迭代的集合 (使用el表达式) var 被迭代的当前对象 (不能使用el表达式) 循环中在使用var 的时候必须使用el表达式 -->
    step 代表步数 begin 代表从哪个下标开始 end 代表哪个下标结束-->
    varStatus index 表示下标 count第几个 first 是否是第一个 last 是否是最后一个 返回boolean -->

    用forEach实现下来菜单:

      eg:

        <%
        Map map=new HashMap();
        for(int i=0;i<20;i++){
        map.put("key"+i, "value"+i);
        }
        session.setAttribute("map", map);
        %>

        ${map}
        <hr/>
        ${map.key1 }

        <select >
        <option>--请选择--</option>
        <c:forEach items="${map}" var="m">
        <option value="${m.value }">${m.key}</option>
        </c:forEach>
        </select>

        ${param.name}

C标签做动态引入,与include的区别:c可以引入外部资源,如ww.baidu.com,但并不常用,因为引入后也会没有办法是有其功能

  语法: <c:import url="index.jsp"></c:import> 

redirect:相当于 response.sendRedirect("") 有个param属性 跟在?后面

  语法:<c:redirect url="testJSTL06.jsp">
      <c:param name="name">zhangsan</c:param>
     </c:redirect>

fn标签库:自己测试其方法

fmt标签库:

  重点记住:formatDate和formatNumber

转载于:https://www.cnblogs.com/yaya-yaya/p/5686426.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值