• el表达式与jstl的用法


    课上顺便整理了下java中的El表达式和jstl的用法,下面以举例的方式来阐述各个标签的作用:

    一、 使用el表达式将Map集合中的数据显示出来:

    先给Map集合里面放一些数据库,通过EL表达式显示在页面中:

    <%
                  Map names = new HashMap();
                  names.put("one",1);
                  names.put("three",3);
                  names.put("two",2);
                  //将集合放在request的作用域中
                  //request.setAttribute("names", names);
           %>
    

    使用el表达式将Map集合中的数据显示出来:${names.one}

    运行结果为:1

    二、.el表达式的关系运算符:

    1.==: ${2==3 }<br/>           <!-- 输出false -->
    2.>=: ${2>=1}<br/>          <!-- 输出true -->   
    3.!=: ${2!=2 }<br/>          <!-- 输出false -->
    4.eq: ${"111" eq "111"}<br/>  <!-- 输出true -->
    

    三、el表达式的逻辑运算符:

        1.&&:  ${2==2 && 2==3 }<br/>    <!-- 输出false -->
        2.||:  ${2==2 || 2==3 }<br/>    <!-- 输出true -->
        3.!或者not :${not (2==2) }<br/> <!-- 输出false -->    
    

    四、获取后台传的值:

    先写一个注册的页面reg.jsp,代码如下:

    <body>
         <h1>注册信息</h1>
         <form action="regServlet" method="post">
             用户名:<input type="text" name="uname"/><br/>
             性别:<input type="text" name="usex"/><br/>
             电话:<input type="text" name="uphone"/><br/>
             <input type="submit" value="提交"/>
         </form>
      </body>
    

    可以看到该注册页面的表单提交到的是regServlet类,接下来看regServlet类的代码:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            request.setCharacterEncoding("utf-8");
            //获取信息
            String uname = request.getParameter("uname");
            String usex = request.getParameter("usex");
            String uphone = request.getParameter("uphone");
            //将获取到的值放在实体类的对象里面
            User user = new User();
            user.setUname(uname);
            user.setUphone(uphone);
            user.setUsex(usex); 
            //调用实现类的方法(这儿暂时不演示)
            //将对象放在request作用域里面
            request.setAttribute("user",user);
            //转发到index.jsp页面
            request.getRequestDispatcher("index.jsp")
                                .forward(request, response);
    
        }
    
        //调用DoGet()方法
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    

    在index.jsp使用el表达式获取后台值的代码:

          用户名:${user.uname }<br/>
          性别:${user.usex }<br/>
          电话:${user.uphone }<br/>
    

    运行结果如图所示:

    五、jstl的案例演示:

    (使用jstl之前,需要在最上方将jstl的标签库导入到jsp页面中),代码是:

         <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    

    jstl的标签用法如下:

    1. set的用法(设置作用域的值):

        <c:set var="info" value="张s三" scope="session"/>
          <br/>
          (1)var:设置的变量名
          (2)value:值
          (3)scope:作用域
          <br/>
    
           获取c:set里面的值:${info}
    

    运行结果如图所示:

    2.out:(将结果输出显示):

        <c:out value="${infos}" default="李四"/>
          <br/>
          value:需要显示的值,里面可以放一个el表达式<br/>
          default:如果el表达式里面未取到值,则显示defalut的值
    

    运行结果如图所示:


    3.remove:移除指定作用域里面的值:

      <c:remove var="info"/>
          将值移除掉的时,重新获取info的值:${info}
    

    运行结果如图所示:

    4.jstl的条件标签库:

    <c:if test="${2==2}">
              <h2>进来了if语句</h2>
          </c:if>
    

    运行结果如图所示:

    5.choose的用法,相当于java中的if-else:

    <c:choose>
             <c:when test="${2==3 }">
                 <h2>2与3相等</h2>
             </c:when>
             <c:otherwise>
                 <h2>2和3不相等</h2>
             </c:otherwise>
         </c:choose> 
    

    运行结果如图所示:

    6.迭代标签库:

    <%
                 List<User> uList = new ArrayList<User>();
                 User u = new User();
                 u.setUid(1);
                 u.setUname("张三");
                 u.setUsex("男");
                 u.setUphone("110");
                 User u1 = new User();
                 u1.setUid(2);
                 u1.setUname("李四");
                 u1.setUsex("女");
                 u1.setUphone("230");
                 //给集合里面添加信息
                 uList.add(u);
                 uList.add(u1);
                 //将集合放在requset作用域里面
                 request.setAttribute("uList",uList);
              %>
            显示集合里面的数据:
            <br/>
            <c:forEach items="${uList }" var="user" varStatus="sta">
                编号:${user.uid}<br/>
                用户名:${user.uname}<br/>
                性别:${user.usex}<br/>
                电话:${user.uphone}<br/>
                <hr>
            </c:forEach>    
             <br/>
             1.var:变量名。<br/>
             2.items:request作用域里面的键<br/>
             3.varStatus:索引  
    

    运行结果如图所示:

    猜你想买

    温馨提示

    如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

    往期内容更精彩哦~

  • 相关阅读:
    <亲测>CentOS7yum安装PHP7.2
    linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):
    解决js输出汉字乱码问题
    <亲测>.NET Core项目在Linux上使用QRCoder时出错"Unable to load DLL 'gdiplus'"
    <亲测>阿里云centos7 挂载数据盘配置
    centos 磁盘清理 /dev/vda1系统盘满了
    两种方式:mysql查看正在执行的sql语句
    adb调试android设备 说的比较清楚的一篇文章
    <亲测>window+iis+letsencrypt+ssl 手动续期(通配符域名)
    申请免费通配符证书(Let's Encrypt)并绑定IIS
  • 原文地址:https://www.cnblogs.com/a1111/p/14877484.html
Copyright © 2020-2023  润新知