el标签库,jstl标签库备忘,示例

<%@ page import="cn.xiao.bean.User" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: dream
  Date: 18-7-24
  Time: 下午1:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" session="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>el表达式回顾</title>
</head>
<body>
<%
    request.setAttribute("name", "value");
    User user = new User();
    user.setGender("male");
    user.setLove("lyy");
    request.setAttribute("user", user);

    Map<String, String> map = new HashMap<>();
    map.put("1", "01");
    map.put("2", "02");
    request.setAttribute("map", map);

    List<String> list = new ArrayList<>();
    list.add("11");
    list.add("22");
    request.setAttribute("list", list);
%>

<%--存取值--%>
${name}&nbsp;&nbsp;&nbsp;相当于${pageContext.findAttribute("name")}<br>
<%--存取对象的属性--%>
${user.love}
<%--读取list属性--%>
<c:forEach var="string" items="${list}">
    ${string}
</c:forEach>

<%--读取map属性--%>
<c:forEach var="entrySet" items="${map}">
    ${entrySet.key} = ${entrySet.value}
</c:forEach>

<%--测试empty使用--%>
<c:if test="${empty(list)}">
    list为空
</c:if>

<c:if test="${!empty(list)}">
    <c:forEach var="item" items="${list}">
        ${item}
    </c:forEach>
</c:if>

<%--三元表达式--%>
<label>
    <input type="radio" name="gender" value="female" ${user.gender=="female"?"checked":""}></label>
<label>
    <input type="radio" name="gender" value="male" ${user.gender=="male"?"checked":""}></label>
</body>
</html>
<%@ page import="cn.xiao.bean.User" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: dream
  Date: 18-7-24
  Time: 下午3:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" session="false" %>
<%@ taglib uri="http://mycompany.com" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn2" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--param对象获取注册表信息--%>
<form action="${pageContext.request.contextPath}/TestServlet" method="post">
    <label>
        <input name="register" type="text" value="${param.register}">
        <input type="submit" value="注册">
    </label>
</form>

<%--自定义html转义--%>
${fn:filter("<a>")}
<%--el标签库提供的--%>
${fn2:escapeXml("<a href='www.4399.com'></a>")}

<%--从数据中回显选项--%>
<%
    User user = new User();
    user.setLikes(new String[]{"sing", "dance"});
    request.setAttribute("user", user);
%>
<label>
    <input type="checkbox" name="likes" value="sing"  ${fn2:contains(fn2:join(user.likes, ","), "sing" )? "checked":""}>唱歌
    <input type="checkbox" name="likes" value="dance" ${fn2:contains(fn2:join(user.likes, ","), "dance" )?"checked":""}>跳舞
    <input type="checkbox" name="likes" value="play"  ${fn2:contains(fn2:join(user.likes, ","), "play" )? "checked":""}></label><br>

<%--jstl标签库练习--%>
<%--out标签--%>
<%
    request.setAttribute("a", null);
%>
1.html转义
<c:out value="<a href='www.4399.com'></a>" escapeXml="true"/><br>
2.设置默认值
<c:out value="${pageScope.a}" default="对不起这个标签是空的"/><br>

<%--set标签--%>
1.往某个域里面存数据
<c:set var="key" value="value" scope="request"/>${requestScope.key}<br>
2.往某个map存数据
<%
    Map<String, String> map = new HashMap<>();
    request.setAttribute("map", map);
%>
<c:set var="key" value="value1" target="${requestScope.map}"/>
<c:forEach var="entrySet" items="${requestScope.map}">
    ${entrySet.key} = ${entrySet.value} <br>
</c:forEach>
2.往bean里面存数据
<%
    User user1 = new User();
    request.setAttribute("user1", user1);
%>
<c:set property="name" value="xiaoxin" target="${requestScope.user1}"/>${requestScope.user1.name}<br>

<%--remove标签=移除某个域中的值--%>
<c:remove var="key" scope="request"/>

<%--catch标签=处理位于标签体内的异常,默认存在page域里面--%>
<c:catch var="myexception">
    <%
        int a= 10/0;
    %>
</c:catch>
<c:out value="${myexception.stackTrace}"/><br>

<%--if标签,进行判断,将结果存储在某个域里面--%>
<c:if test="${empty(user1)}" var="exists" scope="request">
    成功则被执行
</c:if><br>

<%--choose-when-otherwise 实现if-else表达式--%>
<c:choose>
    <c:when test="${empty(user1)}" >
        user1存在
    </c:when>
    <c:otherwise>
        user1不存在
    </c:otherwise>
</c:choose><br>

<%--foreach迭代--%>
<%
    List<String> list = new ArrayList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    request.setAttribute("list", list);
%>
<c:forEach var="item" items="${list}">
    ${item}
</c:forEach><br>
或者:
<c:forEach var="index" begin="0" end="${fn2:length(list)}">
    ${list[index]}
</c:forEach>

<%--url重写:中文参数,防止禁用cookie,后面会自动加上JSSESSIONID号码--%>
<c:url var="TestServlet" value="/TestServlet">
    <c:param name="like" value="唱歌"/>
</c:url>
<a href="${TestServlet}">一个超链接</a>
<%--相当于:--%>
<%--<a href="/day12/TestServlet?like=%e5%94%b1%e6%ad%8c">一个超链接</a>--%>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_41376740/article/details/81192382