zoukankan      html  css  js  c++  java
  • JSTL&EL

    1.EL:

    Expression Language,可以很方便地获取各种参数:

    ${参数名}

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isELIgnored="false"%>//不同版本的tomcat是否默认开启对EL表达式的支持,是不一定的,加这一句保险些
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Insert title here</title>
    </head>
    <body>
        <%
            request.setAttribute("name","god");
            session.setAttribute("name","session");
            application.setAttribute("name","apply");
            pageContext.setAttribute("name","page");
            Cookie c = new Cookie("cookie","cool");
            response.addCookie(c);
        //EL会按照从小到大的优先级顺序获取 
        //${name}
        //pageContext>request>session>application
        %>
        ${requestScope.name }
        ${sessionScope.name }
        ${applicationScope.name }
        ${pageScope.name }
        <%--获取cookie名称(键)--%>
        ${cookie.cookie.name }
        <%--获取cookie值 --%>
        ${cookie.cookie.value }
        <%--获取request传过来的值--%>
        ${param.hero }
        <%--获取web根路径--%>
        ${pageContext.request.contextPath }
        <%--空判断--%>
        ${empty name };
        <%--equals判断--%>
        ${name eq 'god' }
    </body>
    </html>

    EL表达式能够很方便的获取对象的属性,像这样 ${hero.name} ,就会自动调用getName方法了。

    EL也可以使用三目运算符:

    ${product.is_hot==1 ?"是":"否"}

    2.JSTL:

    JSTL JSP Standard Tag Library 标准标签库 
    JSTL允许开人员可以像使用HTML标签 那样在JSP中开发Java功能。 
    JSTL库有core, i18n, fmt, sql 等等。 
    i18n和sql用的很少,core和fmt在工作中会用到

    常用语法:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 首先要导入标签库

    <c:set var="name" value="${'gareen'}" scope="request" />

    在作用域request中设置name,相当于<%request.setAttribute("name","gareen")%>

    <c:out value="${name}" />

    相当于 <%=request.getAttribute("name")%>

    <c:remove var="name" scope="request" />

    在作用域request中删掉name,相当于<%request.removeAttribute("name")%>

    作用域可以是pageContext, request, session, application

    if else: JSTL中没有else标签,但我们可以使用!来获得相同效果

    <c:if test="布尔值"></c:if>,结合EL来使用

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
     
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     
    <c:set var="hp" value="${10}" scope="request" />
     
    <c:if test="${hp<5}">
        <p>这个英雄要挂了</p>
    </c:if>
     
    <c:if test="${!(hp<5)}">
        <p>这个英雄觉得自己还可以再抢救抢救</p>
    </c:if>
     
    <%
        pageContext.setAttribute("weapon", null);
        pageContext.setAttribute("lastwords", "");
        pageContext.setAttribute("items", new ArrayList());
    %>
     
    <c:if test="${empty weapon}">
        <p>没有装备武器</p>
    </c:if>
    <c:if test="${empty lastwords}">
        <p>挂了也没有遗言</p>
    </c:if>
    <c:if test="${empty items}">
        <p>物品栏为空</p>
    </c:if>

    <c:forEach></c:forEach> 增强型for循环

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isELIgnored="false" import="java.util.*" import="bean.User"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%
        List<User> ulist = new ArrayList<User>();
        User u1 = new User("张三","123",20,"");
        User u2 = new User("李四","123",22,"");
        User u3 = new User("王五","123",18,"");
        ulist.add(u1);
        ulist.add(u2);
        ulist.add(u3);
        request.setAttribute("ulist",ulist);
    %>
    <table border="1px">
        <c:forEach items="${ulist }" var="user" varStatus="st">//要遍历的对象 形参 遍历状态
                <tr>
                    <td><c:out value="${st.count}" /></td>//获取遍历的位次
                    <td><c:out value="${user.uname}" /></td>
                    <td><c:out value="${user.pwd}" /></td>
                    <td><c:out value="${user.sex}" /></td>
                    <td><c:out value="${user.age}" /></td>
                    </tr>
        </c:forEach>
    </table>
    </body>
    </html>

    循环一定次数并输出数字:<c:forEach  var="s" begin="1" end="10">${s}</c:forEach>

    format格式化:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix='fmt' %> 导入标签库

    格式化小数:

    <fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/>

    fmt:formatNumber 表示格式化数字
    minFractionDigits 小数点至少要有的位数
    maxFractionDigits 小数点最多能有的位数

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
         
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix='fmt' %> 
     
    <c:set var="money" value="888.8" />
    <c:set var="pi" value="3.1415926" />
    最少两个小数点:
    <fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/>
    <br>
    最多两个小数点:
    <fmt:formatNumber type="number" value="${pi}" maxFractionDigits="2" />

    格式化日期:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
         
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix='fmt' %> 
     
    <%
        Date now = new Date();
        pageContext.setAttribute("now",now);
    %>
     
    完整日期: <fmt:formatDate value="${now}" pattern="G yyyy年MM月dd日 E"/><br>
    完整时间: <fmt:formatDate value="${now}" pattern="a HH:mm:ss.S z"/><br>
    常见格式: <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss"/>

  • 相关阅读:
    Notepad++可以结合命令行来搭建各种编程环境
    installshield中如何执行批处理 还有设置环境变量
    intallshield各种控制语句
    实际应用中installshield的事件处理
    intallshield各种控制语句
    java 沙箱
    手写installshield入门
    installshield安装程序自注册dll
    实际应用中installshield的事件处理
    installshield中如何执行批处理 还有设置环境变量
  • 原文地址:https://www.cnblogs.com/whwjava/p/9028408.html
Copyright © 2011-2022 走看看