首页 > 学院 > 开发设计 > 正文

Java_Web之JSTL和EL

2019-11-15 00:17:59
字体:
来源:转载
供稿:网友
java_Web之JSTL和EL

今天学了JSTL和EL,替换了以前for循环,感觉代码越来越少了,十分方便。JSTL和EL密不可分。

一、什么是EL表达式?

什么是EL EL即ExPRession Language(表达式语言)EL的功能替代jsp页面中的复杂代码EL的语法${  EL exprission }${  bean.name } 或  ${  bean['name'] }

二、EL的特点

自动转换类型

EL得到某个数据时可以自动转换类型

对于类型的限制更加宽松使用简单相比较在JSP中嵌入Java代码,EL应用更简单三、EL的语法EL语法以“${”作为开始,以“}”作为结束直接使用变量名获取值$${ username }变量属性范围名称四、EL中的运算符和EL隐式对象
EL运算符运算符”[ ]”运算符”.”作用获取对象属性获取对象集合中的数据在session中保存了一个(list)集合users

什么是JSTL?

使用JSTL实现JSP页面中逻辑处理什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标签库JSTL通常会与EL表达式合作实现JSP页面的编码

二、JSTL的环境搭建

使用JSTL的步骤创建Web工程,选择JSTL1.1(目前使用的版本不需要配置,高版本集合在一起)在JSP页面添加taglib指令使用JSTL标签

JSTL标准标签库介绍

通用标签

条件标签

迭代标签

JSTL和EL案例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";        session.setAttribute("username","小明");        List list = new ArrayList();    list.add("a");    list.add("b");    list.add("c");    list.add("d");        request.setAttribute("aa",list);        Map map = new HashMap();    map.put("name","admin");    map.put("pwd","adminpassWord");        request.setAttribute("map",map);        session.setAttribute("map",map);        application.setAttribute("c","123456");    application.setAttribute("c","789");            entity.User user = new entity.User();    user.setUsername("aa");    user.setPassword("bb");    session.setAttribute("user",user);        //request.getParameter();//------param:获取表单项    //request.getParameterValues();//------paramValues:获取多个表单项%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title>      </head>    <body>   <!--       注意:      EL表达式默认范围:request      如果没有确定范围;那么EL表达式就会按照范围的顺序按个进行查找:request-session-page-appplication      直到遍历JSP9大内置对象找到相对应的值为止   -->       以前的方式: <%=session.getAttribute("username") %><br/>    EL表达式:${sessionScope.username }<br/>    ${applicationScope.c }<br/>    EL表达式在request取出集合:${aa}<br/>           取出map集合:${map["name"] }<br/>    ${map.pwd }<br/>     EL取出session中map集合:${sessionScope.map.name }<br/>     ${sessionScope.user.username }            <form action="success.jsp" method="post">        username:<input type="text" name="username" /><br/>        password:<input type="password" name="password" /><br/>        love:<input type="checkbox" name="love" value="a" />吃饭<br/>            <input type="checkbox" name="love" value="b" />睡觉<br/>            <input type="checkbox" name="love" value="c" />敲代码<br/>        <input type="submit" />    </form>  </body></html>

处理页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";    String name = request.getParameter("username");    String[] love = request.getParameterValues("love");    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">       <title>My JSP 'success.jsp' starting page</title>    </head>  <!--       JSTL的出现是为了替代以往下载jsp页面中的java逻辑判断和选择判断语句      EL表达式的出现是为了替代以往的表达式      JSTL一般与EL表达式合作开发动态的jsp页面   -->   <%       //if(条件)   %>  <body>      <p>      <c:set var="abc" value="${99+1}" scope="session" />      输出值:<c:out value="${abc}"/>      删除值:<c:remove var="abc" scope="session" />      删除之后:<c:out value="${abc}" default="null" />      </p>      <c:if test="${1==1}" var="if1" >          是真的      </c:if>      <!--           empty:判断当前值是否为空null          如果为null则返回true          否则返回false       -->      <c:if test="${not empty null }" var="if2"></c:if>      <p>          输出if1结果:<c:out value="${if1}" /><br/>          输出if2结果:<c:out value="${if2}" /><br/>      </p>       用户名:${param.username }<br>       密   码:${param.password }<br>       love:${paramValues.love[0] },${paramValues.love[1] },${paramValues.love[2] }       长度:${fn:length(paramValues.love) }                     <div style="margin-top: 50px">           <%               List list  = new ArrayList();               list.add("a");               list.add("b");               list.add("c");               list.add("d");               list.add("e");                              request.setAttribute("list",list);                          %>           <table border="1">               <c:forEach items="${list}" var="m"  varStatus="statu">                   <tr><td>${m }=====${statu.index }</td></tr>               </c:forEach>           </table>       </div>         </body></html>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表