EL & JSTL & MVC EL表达式 【EL的概述】 Ø 目的:为了使JSP写起来更加简单。及简化JSP代码,减少<% %> Ø 使用:语法是${EL表达式} Ø 功能: *获取数据:(JSP的四个域) *执行运算 *操作web开发的常用对象 *调用Java中方法:---很少使用 【获取数据】 ***** .和[]的区别. * []用于有下标的数据(数组,list集合) .用于有属性的数据(map,对象) * 如果属性名中包含有特殊的字符.必须使用[] 数组,List:[] ---遍历 Map,java对象:...属性 【EL的执行运算】 <h3>EL执行算数运算</h3> <% pageContext.setAttribute("n1", "10"); pageContext.setAttribute("n2", "20"); pageContext.setAttribute("n3", "30"); pageContext.setAttribute("n4", "40"); %> ${ n1 + n2 + n3 } <h3>EL执行逻辑运算</h3> ${ n1 < n2 } - ${ n1 lt n2 } <!-- less than --><br/> gt - >; le - <=; ge - >=; eq - ==; <h3>EL执行关系运算</h3> ${ n1<n2 && n3 < n4 } - ${ n1<n2 and n3 < n4 }<br/> <h3>EL执行三元运算</h3> ${ n1 < n2 ? "正确":"错误" } <h3>empty运算</h3> ${ user == null } - ${ empty user } 【EL操作WEB开发的常用对象11个】 <!-- pageScope,requestScope,sessionScope,applicationScope - 获取JSP中域中的数据 param,paramValues - 接收参数. header,headerValues - 获取请求头信息 initParam - 获取全局初始化参数 cookie - WEB开发中cookie pageContext - WEB开发中的pageContext. --> <h3>接收请求的参数</h3> <%= request.getParameter("id") %> <%= request.getParameter("name") %> <%= Arrays.toString(request.getParameterValues("hobby")) %> <hr/> ${ param.id } ${ param.name } ${ paramValues.hobby[0] } ${ paramValues.hobby[1] } <h3>获取请求头</h3> <%= request.getHeader("User-Agent") %> <hr/> ${ header["User-Agent"] } <h3>获取全局初始化参数</h3> ${ initParam.username } <h3>获取Cookie中的值</h3> ${ cookie.history.value } <h3>获取PageContext中的对象</h3> IP地址:${ pageContext.request.remoteAddr } 工程路径:${ pageContext.request.contextPath } JSTL 【JSTL的概述】 JSP的标准标签库。(是一个不断完善的开放源代码的JSP标签库) Ø 作用:JSTL和EL结合替换页面中的<%%> Ø 版本: * JSTL1.0 :不支持EL表达式. * JSTL1.1 和 1.2 :支持EL表达式. Ø JSTL的标签库:包含了五类标签. * core(核心标签),fmt(国际化标签),xml(XML标签),sql(SQL标签),fn(JSTL提供EL函数库) Ø 使用JSTL: * 引入JSTL的相关的jar包. * 在页面中引入标签库.<%@ taglib uri=”” prefix=””%> 【JSTL的核心标签的用法】 * if: 属性:test=“”|没有else,从条件着手解决else * forEach:(主要用来遍历) <c:forEach var="i" item="${arrs }"> ${i } </c:forEach> var:名字随便取 items:取出待遍历的对象 step:步进(隔几个写数) varStatus(记录遍历状态的变量):属性1:index(有下标的内容数据) 属性2:count(个数) 【JSTL的提供EL的函数库】 <h1>JSTL提供的EL的函数库</h1> ${ fn:contains("Hello World","Hello") } ${ fn:length("HelloWorld") } ${ fn:toLowerCase("ABCDE") } <c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'> ${ i } </c:forEach> MVC JSP+Servlet+JavaBean合称MVC的设计模式 MVC: M:Model:模型层 JavaBean V:View:视图层 JSP C:Controller:控制层Servlet
|