EL&JSTL



1.EL表达式: 是jsp写起来更简单.
 
         1.语法: ${EL表达式}


         2.功能: 获取数据:(jsp的四个域), 执行运算,操作web开发常用的对象,调用java中的方法(不一般用)


         3.${pageScope.name}: 前面写域名.属性名   如果没找到返回空字符串
               简写方式${name} 类似于findAttribute("name");




         4.获取数组数据:${arrs[索引]}  , 获取List数据:${list[索引]}


         5.获取Map集合的数据: ${map.aaa} 集合.属性名


         6.点和方括号的区别: 方括号用于有下标的数据, 点用于有属性的数据(map或javaBean)
                      如果属性名中包含有特殊字符,必须加["属性名"]  属性名bbb.aaa




         7.获取对象的属性: ${user.name}   调用的对象的get方法;


         8.数组中存放对象, ${userlist[0].username}第一个对象的属性名 ${usermap.user1.username}




2.EL执行运算:


  1.算数运算:${属性名1+属性名2} 会类型转换,如果没有值,为0  不能执行位运算


2.逻辑运算 ${n1 < n2} 或 ${n1 lt n2}  lt小于 gt大于  le小于等于 ge大于等于 eq等于


3.关系运算:${n1 < n2 && n3 < n4} 或 ${n1 < n2 and n3 < n4}  或or 
                   ${!(n1 < n2)} 非 not(n1<n2)


4.执行三元运算符


5.判断一个对象是否为空: ${user == null} 或 ${empty user} 不为空 not empty




3.操作web开发常用的对象 11个对象


1.pageScope,requestScope,sesssionscope,applicationscope
 
  2.param和paramValues--接收参数(${param.cid})  header和heraderValues -- 获取请求头信息


        3.initparam  --获取全局初始化参数  cookie -- web开发中的cookie ${cookie.username.value}
          pagacontext  -- web开发中的pagacontext




4.如何从地址栏得到?id=1;   ${param.id}  得到数组: ${paramValues.hobby[索引]}


5.获取请求头: ${header["user-agent"]} 因为有特殊字符


6.获取全局初始化参数:${initparam.属性名}


**7.获取cookie: ${cookie.history.value}


8.获取pagacontext的对象  ${pageContext.request.contextPath} 工程名








                              JSTL


1.JSTL:  jsp的标准标签库  作用: JSTL和EL结合替换页面中<%%>


        1.版本 JSTL1.0 :不支持EL表达式   JSTL1.1和JSTL1.2 :支持EL表达式


2.JSTL的标签库: 包含了五类标签.


core(核心标签);fmt(国际化标签); xml(xml标签); sql(SQL标签) fn(JSTL提供EL函数库)


2.使用JSTL:


1.引入两个jar包,在页面中引入标签库: <%@ taglib uri="jsp/jstl/core" prefix="c" %>


2. <c:set var="变量名" value="值" scope="page域"> request域


3.<c:out value="<h1>${i}</h1>" default="默认值" excapeXml="false"> 如果i没有值,会执行默认值,
           里面的value是什么值都不能有<h1>
                会执行html</c:out>


        4..<c:if test="判断条件" var="变量名" scope="page域"> 把下面执行结果赋给变量,存入page域中


5.遍历数组   <c:forEach var="i" items="数组${arrs}"> i为获取的值 , list集合也一样




6.遍历map   <c:forEach var="entry" items="map集合${map}"> entry为键值对  
                       取值:${entry.key}  ${entry.value}


7.遍历1-10,每次+2,到三就变红   <c:forEach var="i" begin="1" end="10" step="2" varStatus="status">  status.count %3 == 0;   
            varStatus记录变化的状态,随便起名字,index是带下标的 ,必须有数组或者集合的时候才能用  




3.JSTL的提供的EL的函数库uri="http://java.sun.com/jsp/jstl/functions" prefix="fn";


1.${fn: 字符串中的方法(例如:contains,length,indexof,split)("a-b-c","-")}








4.将商品信息显示到JSP页面中;


1.在servlet中,调用业务层,返回list集合,存到request域中,转发;


2.在jsp页面中,表格中,forEach






                             mvc设计模式


MVC设计模式:  jsp 用于显示数据, JavaBean用于封装和处理数据,servlet控制;




第一种设计模式: jsp+javaBean;    


封装数据两个jar包 BeanUtils.populate() ;  用到了反射






你可能感兴趣的:(ELjstl)