jstl練習2
阿新 • • 發佈:2017-09-11
text 技術分享 規範 class sco idea shm dtd content
一.本例不導包,請看練習1
1 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 2 <%-- 3 Created by IntelliJ IDEA. 4 User: Administrator 5 Date: 2017/9/11 6 Time: 20:30 7 To change this template use File | Settings | File Templates. 8 --%> 9 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 10<html> 11 <head> 12 <title>set標簽的使用</title> 13 </head> 14 <body> 15 <h3>代碼給出了指定scope範圍賦值的示例</h3> 16 <ul> 17 <%--1.通過<c :set>標簽將data1的值放入page範圍中國.--%> 18 <li>把一個值放入page域中: <c :set var="data" value="data" scope="page"/> </li> 19<%----%> 20 <%--2.使用EL表達式從pageScope得到data1的值。--%> 21 <li>從page域中得到值:${pageScope.data1}</li> 22 <%--3.通過<c:set>標簽將data2的值放入request範圍中。--%> 23 <li>把一個值放入request域中:<c:set var="data2" value="gacl" scope="request"/></li> 24<%--4.使用EL表達式從requestScope得到data2的值。--%> 25 <li>從request域中得到值:${requestScope.data2}</li> 26 <%--通過<c:set>標簽將值name1的值放入session範圍中。--%> 27 <li>把一個值放入session域中。<c:set value="呵呵" var="name1" scope="session"></c:set> </li> 28 <%--使用EL表達式從sessionScope得到name1的值。--%> 29 <li>從session域中得到值:${sessionScope.name1} </li> 30 <%--把name2放入application範圍中。 --%> 31 <li>把一個值放入application域中。<c:set var="name2" scope="application">白虎神皇</c:set></li> 32 <%--使用EL表達式從application範圍中取值,用<c:out>標簽輸出使得頁面規範化。 --%> 33 <li>使用out標簽和EL表達式嵌套從application域中得到值: 34 <c:out value="${applicationScope.name2}">未得到name的值</c:out> 35 </li> 36 <%--不指定範圍使用EL自動查找得到值 --%> 37 <li>未指定scope的範圍,會從不同的範圍內查找得到相應的值:${data1}、${data2}、${name1}、${name2}</li> 38 </ul> 39 40 </body> 41 </html>
二.
1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 <web-app> 6 <display-name>Archetype Created Web Application</display-name> 7 <welcome-file-list> 8 <welcome-file>/jstl/jstl1.jsp</welcome-file> 9 </welcome-file-list> 10 </web-app>
三.結果
1 <%@ page import="java.util.HashMap" %> 2 <%@ page import="java.util.Map" %><%-- 3 Created by IntelliJ IDEA. 4 User: Administrator 5 Date: 2017/9/11 6 Time: 20:54 7 To change this template use File | Settings | File Templates. 8 --%> 9 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 10 <html> 11 <head> 12 <title>Title</title> 13 </head> 14 <body> 15 <h3>使用Java腳本實現以上功能</h3> 16 <ul> 17 <li>把一個值放入page域中。<%pageContext.setAttribute("data1","xdp");%></li> 18 <li>從page域中得到值:<%out.println(pageContext.getAttribute("data1"));%></li> 19 <li>把一個值放入request域中。<%request.setAttribute("data2","gacl");%></li> 20 <li>從request域中得到值:<%out.println(request.getAttribute("data2"));%></li> 21 22 <li>把一個值放入session域中。<%session.setAttribute("name1","");%></li> 23 <li>從session中域得到值:<%out.println(session.getAttribute("name1"));%></li> 24 <%--out.println()方法與<%=%>表達式輸出功能一樣 25 但使用表達式輸出(<%=%>)明顯要比使用out.println()輸出更好。 26 --%> 27 <li><%=session.getAttribute("name1") %></li> 28 <li>把另一個值放入application域中。<%application.setAttribute("name2","");%></li> 29 <li> 從application域中得到值:<%out.println(application.getAttribute("name2"));%></li> 30 <li><%=application.getAttribute("name2")%></li> 31 32 <li>未指定scope的範圍,會從不同的範圍內查找得到相應的值: 33 <%=pageContext.findAttribute("data1")%>、 34 <%=pageContext.findAttribute("data2")%>、 35 <%=pageContext.findAttribute("name1")%>、 36 <%=pageContext.findAttribute("name2")%> 37 </li> 38 </ul> 39 <hr/> 40 <h3>操作JavaBean,設置JavaBean的屬性值</h3> 41 <%--設置JavaBean的屬性值,等同與setter方法,Target指向實例化後的對象,property指向要插入值的參數名。 42 註意:使用target時一定要指向實例化後的JavaBean對象,也就是要跟<jsp:useBean>配套使用, 43 也可以java腳本實例化,但這就失去了是用標簽的本質意義。 44 使用Java腳本實例化: 45 <%@page import="javabean.Person"% 46 <% Person person=new Person(); %> 47 --%> 48 <c:set target="${person}" property="name">孤傲蒼狼</c:set> 49 <c:set target="${person}" property="age">25</c:set> 50 <c:set target="${person}" property="sex">男</c:set> 51 <c:set target="${person}" property="home">中國</c:set> 52 <ul> 53 <li>使用的目標對象為:${person}</li> 54 <li>從Bean中獲得的name值為:<c:out value="${person.name}"></c:out></li> 55 <li>從Bean中獲得的age值為:<c:out value="${person.age}"></c:out></li> 56 <li>從Bean中獲得的sex值為:<c:out value="${person.sex}"></c:out></li> 57 <li>從Bean中獲得的home值為:<c:out value="${person.home}"></c:out></li> 58 </ul> 59 <hr/> 60 <h3>操作Map</h3> 61 <% 62 Map map = new HashMap(); 63 request.setAttribute("map",map); 64 %> 65 <%--將data對象的值存儲到map集合中 --%> 66 <c:set property="data" value="gacl" target="${map}"/> 67 ${map.data} 68 </body> 69 </html> 70 </body> 71 </html>
結果:
out標簽功能:
1 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 2 <%-- 3 Created by IntelliJ IDEA. 4 User: Administrator 5 Date: 2017/9/11 6 Time: 20:59 7 To change this template use File | Settings | File Templates. 8 --%> 9 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 10 <html> 11 <head> 12 <title>out標簽的使用</title> 13 </head> 14 <body> 15 <c:out value="輸出字符串"></c:out> 16 <c:out value="${EL表達式}"/> 17 <c:out value="${null}" default="這個顯示默認值"/> 18 <c:out value="${null}"/> 19 </body> 20 </html>
1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 <web-app> 6 <display-name>Archetype Created Web Application</display-name> 7 <welcome-file-list> 8 <welcome-file>/jstl/jstl3.jsp</welcome-file> 9 </welcome-file-list> 10 </web-app>
結果:
jstl練習2