jstl练习2
一.本例不导包,请看练习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>
结果:
choose及其嵌套标签
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: 21:53 7 To change this template use File | Settings | File Templates. 8 --%> 9 <%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" isELIgnored="false" %> 10 <html> 11 <head> 12 <title>choose 及其嵌套标签示例</title> 13 </head> 14 <body> 15 <h4>choose 机器嵌套标签示例</h4> 16 <hr> 17 <%--通过set标签设定score的值为85--%> 18 <c:set var="score" value="95"/> 19 <c:choose> 20 <%--使用<c:when>进行条件判断. 21 如果大于等于90,输出"你的成绩为优秀" 22 如果大于等于70小于90,输出"你的成绩为良好" 23 大于等于60小于70,输出"你的成绩为合格' 24 其他(otherwise) 输出"对不起,你没有通过考试" 25 --%> 26 <c:when test="${pageScope.score>=90}"> 27 <c:out value="你的成绩为优秀"/> 28 </c:when> 29 <c:when test="${pageScope.score>70&&pageScope.score<90}"> 30 <c:out value="你的成绩为良好"/> 31 </c:when> 32 <c:when test="${pageScope.score>60&&pageScope.score<70}"> 33 <c:out value="你的成绩为及格"/> 34 </c:when> 35 <c:otherwise> 36 <c:out value="对不起,你没有通过考试"/> 37 </c:otherwise> 38 </c:choose> 39 </body> 40 </html>
结果如下: