el表达式与jstl的用法

简介: 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:索引

运行结果如图所示:

猜你想买

温馨提示

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

往期内容更精彩哦~


相关文章
|
3月前
|
Java Linux Apache
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
249 5
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
|
6月前
|
运维 分布式计算 Kubernetes
【能力比对】K8S数据平台VS数据平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【能力比对】K8S数据平台VS数据平台
|
编解码 Linux Docker
如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools
如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools
291 0
|
11月前
|
存储 关系型数据库 MySQL
MySQL主键谁与争锋:MySQL为何钟爱自增主键ID+UUID?
本文深入探讨了在MySQL中使用自增类型主键的优势与局限性。自增主键通过保证数据的有序性和减少索引维护成本,提升了查询和插入性能,简化了数据库管理和维护,并提高了数据一致性。然而,在某些业务场景下,如跨表唯一性需求或分布式系统中,自增主键可能无法满足要求,且存在主键值易预测的安全风险。因此,选择主键类型时需综合考虑业务需求和应用场景。
382 2
|
监控 安全 网络安全
探讨网站加密访问的安全性问题:HTTPS的防护与挑战
**探讨HTTPS在网站加密中的角色,提供数据加密和身份验证,防范中间人攻击。心脏滴血漏洞示例显示持续维护的必要性。面临证书管理、性能影响和高级攻击挑战,应对措施包括更新、HSTS策略及用户教育。HTTPS是安全基础,但需不断优化以应对新威胁。**
811 2
|
Java
Java后台返回树形结构的二种方式
Java后台返回树形结构的二种方式
821 0
|
前端开发
前端ElementPlus框架中的几种图标按钮使用方式
本文介绍了如何在Element Plus前端框架中使用带有图标的按钮,包括设置按钮大小、图标大小、按钮类型以及如何为图标添加点击事件。
1350 0
|
搜索推荐 安全 数据挖掘
如何利用商品详情数据挖掘消费者的潜在需求?
本文介绍了利用商品详情数据挖掘消费者潜在需求的六种方法,包括分析商品属性信息、研究消费者评价反馈、关注搜索浏览行为、对比竞争对手数据、分析购买行为及利用数据挖掘技术进行综合分析,旨在帮助企业精准捕捉市场需求,优化产品和服务。
|
自然语言处理 监控 算法
【算法精讲系列】通义模型Prompt调优的实用技巧与经验分享
本文详细阐述了Prompt的设计要素,包括引导语、上下文信息等,还介绍了多种Prompt编写策略,如复杂规则拆分、关键信息冗余、使用分隔符等,旨在提高模型输出的质量和准确性。通过不断尝试、调整和优化,可逐步实现更优的Prompt设计。
3589 11
|
JavaScript 关系型数据库 MySQL
若依框架数据源切换为pg库
若依管理系统切换数据源为pg数据库
1409 1
若依框架数据源切换为pg库