jstl练习2

Posted 友情天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

结果如下:

以上是关于jstl练习2的主要内容,如果未能解决你的问题,请参考以下文章

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习

JSP标签语法JSTL标签库EL表达式辨析

jstl标签库基础教程及其使用代码

JSTL的if-else表式