el表达式与jstl的用法

举报
穆雄雄 发表于 2022/12/13 22:01:50 2022/12/13
【摘要】 课上顺便整理了下java中的El表达式和jstl的用法,下面以举例的方式来阐述各个标签的作用:一、 使用el表达式将Map集合中的数据显示出来:先给Map集合里面放一些数据库,通过EL表达式显示在页面中:<% Map names = new HashMap(); names.put("one",1); names....

课上顺便整理了下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>23相等</h2>
         </c:when>
         <c:otherwise>
             <h2>23不相等</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:索引  

运行结果如图所示:

​编辑

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。