日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

核心标签库(转)

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 核心标签库(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JSTL核心標(biāo)簽庫包含了一組用于實現(xiàn)WEB應(yīng)用中的通用操作的標(biāo)簽,JSP規(guī)范為核心標(biāo)簽庫建議的前綴名為c。

1.3.1 ?<c:out>標(biāo)簽

<c:out> 標(biāo)簽用于輸出一段文本內(nèi)容到pageContext對象當(dāng)前保存的“out”對象中,在通常情況下,pageContext對象當(dāng)前保存的“out”對象 的數(shù)據(jù)是輸出到客戶端瀏覽器,所以,<c:out> 標(biāo)簽通常用于輸出一段文本內(nèi)容到客戶端瀏覽器。如果<c:out> 標(biāo)簽輸出的文本內(nèi)容中包含了需要進行轉(zhuǎn)義的HTML特殊字符,例如,<、>、'、"、&等,<c:out> 標(biāo)簽?zāi)J(rèn)對它們按表1.2進行HTML編碼轉(zhuǎn)換后再進行輸出,這樣就可以在瀏覽器中顯示出這些字符。

表1.2 特殊字符轉(zhuǎn)換

<c:out>標(biāo)簽標(biāo)簽有兩種語法格式:

語法1,沒有標(biāo)簽體的情況:

<c:out value="value"

???? [escapeXml="{true|false}"]

? ?? [default="defaultValue"] />

語法2,有標(biāo)簽體的情況,在標(biāo)簽體中指定輸出的默認(rèn)值:

<c:out value="value"

? ?? [escapeXml="{true|false}"] >

? default value

</c:out>

<c:out>標(biāo)簽的屬性說明如表1.3所示。

表1.3? <c:out>標(biāo)簽的屬性

屬性名

是否支持EL

屬性類型

屬 性 描 述

value

true

Object

指定要輸出的內(nèi)容

escapeXml

true

Boolean

指定是否將>、<、&、'、" 等特殊字符進行HTML編碼轉(zhuǎn)換后再進行輸出。默認(rèn)值為true

default

true

Object

指定如果value屬性的值為null時所輸出的默認(rèn)值

?

當(dāng)且僅當(dāng)value屬性的值為null時,<c:out> 標(biāo)簽輸出默認(rèn)值;如果沒有指定默認(rèn)值,默認(rèn)為空字符串。<c:out> 標(biāo)簽的標(biāo)簽體的內(nèi)容用于指定輸出的默認(rèn)值,如果value屬性的值不為null,即使標(biāo)簽體部分不為空,標(biāo)簽體的內(nèi)容也不會被輸出。如果value屬性不 是指向一個java.io.Reader對象,<c:out> 標(biāo)簽將調(diào)用這個對象的toString方法,然后輸出獲得的字符串內(nèi)容。如果value屬性指向一個java.io.Reader對 象,<c:out> 標(biāo)簽將從這個Reader對象中讀取數(shù)據(jù)后進行輸出,當(dāng)有大量數(shù)據(jù)要被輸出時,將這些數(shù)據(jù)以Reader對象的形式提供給<c:out>標(biāo)簽 進行輸出,將會極大提高系統(tǒng)性能。當(dāng)采用escapeXml屬性的默認(rèn)設(shè)置值true時,<c:out>標(biāo)簽將對要輸出的特殊字符按表1.2 進行轉(zhuǎn)換;如果將escapeXml屬性設(shè)置為false,<c:out>標(biāo)簽將不對要輸出的特殊字符進行轉(zhuǎn)換,而是直接輸出這些特殊字符。

例程1-3是<c:out> 標(biāo)簽的一個演示例子程序。

例程1-3? c_out1.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<%

? session.setAttribute("test_session", "testValue_session");

%>

直接輸出一個字符串:

<c:out value="test" default="123456" /><br /><hr />

輸出Web域中不存在的屬性的值:<br />

<c:out value="${test_request}" default="這個屬性不存在"/><br /><hr />

輸出Web域中的test_session屬性的值:<br />

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

?

?

例程1-3的運行結(jié)果如圖1.1所示。

圖1.1

例程1-4和例程1-5是兩個用于演示<c:out>標(biāo)簽的escapeXml屬性的例子程序,例程1-4沒有設(shè)置escapeXml屬性,例程1-5將escapeXml屬性設(shè)置為了false。

例程1-4? c_out2.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:out value="${null}" >

? <meta http-equiv="refresh" content="0;url=http://www.it315.org" />

</c:out>

?

?

例程1-5 c_out3.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:out value="${null}" escapeXml="false">

? <meta http-equiv="refresh" content="0;url=http://www.it315.org" />

</c:out>

?

?

例程1-4和例程1-5的運行結(jié)果分別如圖1.2和圖1.3所示。

圖1.2

圖1.3

1.3.2 ?<c:set>標(biāo)簽

<c:set>標(biāo)簽用于設(shè)置各種Web域中的屬性,或者設(shè)置Web域中的java.util.Map類型的屬性對象或JavaBean類型的屬性對象的屬性。<c:set>標(biāo)簽有四種語法格式:

語法1,使用value屬性設(shè)置指定域中的某個屬性的值:

<c:set value="value"

???? var="varName"

???? [scope="{page|request|session|application}"] />

語法2,在標(biāo)簽體中設(shè)置指定域中的某個屬性的值:

<c:set var="varName"

???? [scope="{page|request|session|application}"]>

? body content

</c:set>

語法3,使用value屬性設(shè)置Web域中的一個屬性對象的某個屬性:

<c:set value="value"

???? target="target"

???? property="propertyName" />

語法4,在標(biāo)簽體中設(shè)置Web域中的一個屬性對象的某個屬性性:

<c:set target="target"

???? property="propertyName">

? body content

</c:set>

<c:set>標(biāo)簽的屬性說明如表1.4所示。

表1.4 <c:set>標(biāo)簽的屬性

屬性名

是否支持EL

屬性類型

屬 性 描 述

value

true

Object

用于指定屬性值

var

false

String

用于指定要設(shè)置的Web域?qū)傩缘拿Q

scope

false

String

用于指定屬性所在的Web域

target

true

Object

用于指定要設(shè)置屬性的對象,這個對象必須是JavaBean對象或java.util.Map對象

property

true

string

用于指定當(dāng)前要為對象設(shè)置的屬性名稱

?

如果使用第1種語法格式時的value屬性值為null,或者使用第2種語法格式時的標(biāo)簽體內(nèi)容為空,<c:set>標(biāo)簽將從scope屬性指定的域范圍中刪除var屬性指定的屬性。

在第3種語法格式和第4語法格式中,如果target屬性的值是java.util.Map對象,property屬性表示該Map對象的關(guān)鍵字, 如果Map對象沒有指定的關(guān)鍵字,就給Map對象增加指定的關(guān)鍵字;如果target屬性的值是JavaBean對象,property屬性表示 JavaBean對象的屬性,如果value的類型與JavaBean屬性的類型不匹配時,會根據(jù)EL的轉(zhuǎn)換規(guī)則自動進行轉(zhuǎn)換。當(dāng)使用第3種語法格式或第 4種語法格式時,如果target屬性的值為null(即target屬性指定的對象不存在),或者target屬性的值是一個JavaBean對象,但 該JavaBean中不存在property屬性指定的屬性,<c:set>標(biāo)簽將拋出異常。如果使用第3種語法格式時value屬性的值為 null,或者使用第4種語法格式時標(biāo)簽體的內(nèi)容為空,如果target屬性的值是一個java.util.Map對象,就從Map對象中刪除 property屬性指定的關(guān)鍵字對應(yīng)的項;如果target屬性的值是一個JavaBean對象,就將JavaBean的相應(yīng)屬性的值設(shè)置為null。

例程1-6是使用<c:set>標(biāo)簽設(shè)置某個Web域中的屬性的一個演示例子程序。

例程1-6 c_set1.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<c:set var="userName" scope="session">

? zxx

</c:set>

輸出session 作用域中的userNamer屬性的值:

<c:out value="${userName}" /><br /><hr />

輸出session 作用域中的bookname屬性的值:

<c:set var="bookname" scope="session" />

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

?

?

例程1-6的運行結(jié)果如圖1.4所示。

圖1.4

例程1-7是使用<c:set>標(biāo)簽設(shè)置UserBean對象和Map對象的屬性的一個演示例子程序。

例程1-7? c_set2.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.HashMap" %>

<jsp:useBean id="user" class="org.it315.UserBean" />

<%??

? HashMap preferences = new HashMap();

? session.setAttribute("preferences",preferences);

%>

設(shè)置和輸出UserBean對象的userName屬性值:

<c:set value="zxx" target="${user}" property="userName" />

<c:out value="${user.userName}" /><br /><hr />

設(shè)置和輸出UserBean對象的password屬性值:

<c:set target="${user}" property="password" />

<c:out value="${user.password}" /><br /><hr />

設(shè)置和輸出Map對象的color關(guān)鍵字的值:

<c:set target="${preferences}" property="color" value="${param.color}" />

<c:out value="${preferences.color}" />

?

?

在瀏覽器地址欄輸入如下地址訪問例程1-7:

? http://localhost:1010/JSTL/c_set2.jsp?color=green

例程1-7的運行結(jié)果如圖1.5所示。

圖1.5

1.3.3 ?<c:remove>標(biāo)簽

<c:remove>標(biāo)簽用于刪除各種Web域中的屬性,其語法格式如下:

<c:remove var="varName"

???? [scope="{page|request|session|application}"] />

var屬性用于指定要刪除的屬性的名稱,scope屬性用于指定要刪除的屬性所屬的Web域,它們的值都不能接受動態(tài)值。如果沒有指定scope屬性,<c:remove>標(biāo)簽就調(diào)用PageContext.removeAttribute(varName)方法,否則就調(diào)用PageContext.removeAttribute(varName, scope) 方法。<c:remove>與<c:set>標(biāo)簽第一種語法格式的value屬性值為null時的作用相同。

例程1-1是使用<c:remove>標(biāo)簽的一個演示例子程序。

例程1-1 c_remove.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<c:set value="org.it315" var="company" scope="request" />

<c:set var="passWord" scope="session">

? a123456a

</c:set>

在沒有使用 &lt;c:remove&gt; 標(biāo)簽之前,變量的值為:<br />

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

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

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

<!--c:set var="company" scope="request" 此行與黑體字的一行作用是一樣的/-->

<c:remove var="passWord" scope="session" /><hr />

在使用 &lt;c:remove&gt; 標(biāo)簽之后,變量的值為:<br />

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

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

?

?

例程1-1的運行結(jié)果如圖1.6所示。

圖1.6

1.3.4 ?<c:catch>標(biāo)簽

<c:catch>標(biāo)簽用于捕獲嵌套在標(biāo)簽體中的內(nèi)容拋出的異常,其語法格式如下:

<c:catch [var="varName"]>

? nested actions

</c:catch>

var屬性用于標(biāo)識<c:catch>標(biāo)簽捕獲的異常對象,其值是一個靜態(tài)的字符串,不支持動態(tài)屬性 值。<c:catch>標(biāo)簽將捕獲的異常對象以var指定的名稱保存到page這個Web域中,如果沒有指定var屬性, 則<c:catch>標(biāo)簽僅捕獲異常,不在page域保存異常對象。如果<c:catch>標(biāo)簽體中的內(nèi)容沒有拋出異 常,<c:catch>標(biāo)簽將從page域中刪除var屬性指定的屬性。

<c:catch>標(biāo)簽可以捕獲任何標(biāo)簽拋出的異常,并且可以同時處理多個標(biāo)簽拋出的異常,這樣,可以對JSP頁面的異常進行統(tǒng)一處 理,顯示給用戶一個更友好的頁面。JSP處理異常的通用機制是出現(xiàn)重要異常后跳轉(zhuǎn)到錯誤處理頁面,建議盡量不要用<c:catch>標(biāo)簽來代 替JSP的錯誤處理機制,只對一些次要異常才使用<c:catch>標(biāo)簽進行捕獲處理。

例程1-9是使用<c:catch>標(biāo)簽進行異常捕獲處理的一個演示例子程序。

例程1-9 ?c_catch.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<c:catch var="myex">

<%

? int i = 0;

? int j = 10;

? out.println(j + "/" + i + "=" + j/i);

%>

</c:catch>

異常:<c:out value="${myex}" /><br />

異常 myex.getMessage:<c:out value="${myex.message}" /><br />

異常 myex.getCause:<c:out value="${myex.cause}" /><br />

異常 myex.getStackTrace:<c:out value="${myex.stackTrace}" />

?

?

在例程1-9中,<c:catch>標(biāo)簽內(nèi)嵌套的腳本元素拋出了異常,<c:catch var="myex">將捕獲到這個異常,調(diào)用<c:out value="${myex.message}" />,相當(dāng)于調(diào)用<%=myex.getMessage()%>。例程1-9的運行結(jié)果如圖1.7所示。

圖1.7

1.3.5? <c:if>標(biāo)簽

JSP頁面的顯示邏輯中也經(jīng)常需要進行條件判斷,<c:if>標(biāo)簽可以構(gòu)造簡單的“if-then”結(jié)構(gòu)的條件表達式,如果條件表達式的結(jié)果為真就執(zhí)行標(biāo)簽體部分的內(nèi)容。<c:if>標(biāo)簽有兩種語法格式:

語法1,沒有標(biāo)簽體的情況:

<c:if test="testCondition" var="varName"

???? [scope="{page|request|session|application}"] />

語法2,有標(biāo)簽體的情況,在標(biāo)簽體中指定要執(zhí)行的內(nèi)容:

<c:if test="testCondition" [var="varName"]

???? [scope="{page|request|session|application}"]>

? body content

</c:if>

<c:if>標(biāo)簽的屬性說明如表1.5所示。

表1.5 ??<c:if>標(biāo)簽的屬性

屬性名

是否支持EL

屬性類型

屬 性 描 述

test

true

boolean

決定是否處理標(biāo)簽體中的內(nèi)容的條件表達式

var

false

String

用于指定將test屬性的執(zhí)行結(jié)果保存到某個Web域中的某個屬性的名稱

scope

false

String

指定將test屬性的執(zhí)行結(jié)果保存到哪個Web域中

?

對于語法2,如果指定了<c:if>標(biāo)簽的scope屬性,則必須指定var屬性。

例程1-10是使用<c:if>標(biāo)簽的一個演示例子程序。

例程1-10 ?c_if.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<jsp:useBean id="user" class="org.it315.UserBean" />

<c:set value="${param.count}" target="${user}" property="visitCount" />

<c:if test="${user.visitCount == 1}">

? 這是您第一次訪問本網(wǎng)站,歡迎您!

</c:if>

?

?

在瀏覽器地址欄輸入如下地址訪問例程1-10:

? http://localhost:1010/JSTL/c_if.jsp?count=1

例程1-10的運行結(jié)果如圖1.1所示。

圖1.1

1.3.6? <c:choose>標(biāo)簽

<c:choose>標(biāo)簽用于指定多個條件選擇的組合邊界,它必須與<c:when> 和<c:otherwise>標(biāo)簽一起使用。使用<c:choose>,<c:when> 和<c:otherwise>三個標(biāo)簽,可以構(gòu)造類似 “if-else if-else” 的復(fù)雜條件判斷結(jié)構(gòu)。

<c:choose>標(biāo)簽沒有屬性,在它的標(biāo)簽體內(nèi)只能嵌套一個或多個<c:when>標(biāo)簽和0個或一 個<c:otherwise>標(biāo)簽,并且同一個<c:choose>標(biāo)簽中的所有<c:when>子標(biāo)簽必須出現(xiàn) 在<c:otherwise>子標(biāo)簽之前。如果<c:choose>標(biāo)簽內(nèi)嵌套一個<c:when>標(biāo)簽 和<c:otherwise>標(biāo)簽,就相當(dāng)于“if-else”的條件判斷結(jié)構(gòu);如果<c:choose>標(biāo)簽內(nèi)嵌套多 個<c:when>標(biāo)簽和一個<c:otherwise>標(biāo)簽,就相當(dāng)于“if-else if-else”標(biāo)簽。

<c:when>標(biāo)簽只有一個test屬性,該屬性的值為布爾類型。test屬性支持動態(tài)值,其值可以是一個條件表達式,如果條件表達 式的值為true,就執(zhí)行這個<c:when>標(biāo)簽體的內(nèi)容。<c:when>標(biāo)簽體的內(nèi)容可以是任意的JSP代 碼。<c:otherwise>標(biāo)簽沒有屬性,它必須作為<c:choose>標(biāo)簽的最后分支出現(xiàn)。

當(dāng)JSP頁面中使用<c:choose>標(biāo)簽時,嵌套在<c:choose>標(biāo)簽內(nèi)的test條件成立的第一 個<c:when>標(biāo)簽的標(biāo)簽體內(nèi)容將被執(zhí)行和輸出。當(dāng)且僅當(dāng)所有的<c:when>標(biāo)簽的test條件都不成立時,才執(zhí)行和輸 出<c:otherwise>標(biāo)簽的標(biāo)簽體內(nèi)容。如果所有的<c:when>標(biāo)簽的test條件都不成立,并 且<c:choose>標(biāo)簽內(nèi)沒有嵌套<c:otherwise>標(biāo)簽,則不執(zhí)行任何操作。

例程1-11是使用<c:choose>、<c:when>、<c:otherwise>標(biāo)簽的一個演示例子程序。

例程1-11 c_choose.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=gb2312" %>

<c:set value="${param.count}" var="count" />

<c:choose>

? <c:when test="${count == 0}">

???? 對不起,沒有符合您要求的記錄。

? </c:when>

? <c:otherwise>

???? 符合您要求的記錄共有${count}條.

? </c:otherwise>

</c:choose>

?

?

在瀏覽器地址欄輸入如下地址訪問例程1-11:

? http://localhost:1010/JSTL/c_choose.jsp?count=0

例程1-11的運行結(jié)果如圖1.9所示。如果將參數(shù)count的值修改為10,則運行結(jié)果如圖1.10所示。

?

?

圖1.9

圖1.10

?

例程1-12是一個綜合使用<c:if>標(biāo)簽和<c:choose>等標(biāo)簽的例子程序,在這個例子程序中,首先使 用<c:if>標(biāo)簽判斷表單提交的方式是否是POST,如果是,就再使用<c:choose>等標(biāo)簽根據(jù)表單提交的內(nèi)容進行不同 的處理。

例程1-12? c_customLogic.jsp

?

?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:if test="${pageContext.request.method=='POST'}">

??? <c:choose>

???????? <c:when test="${param.favor == 'computer'}">

?????????????? Your favourite course is <b>computer</b>.

???????? </c:when>

???????? <c:otherwise>

?????????????? Your favourite course is <i>other</i>.

???????? </c:otherwise>

??? </c:choose>

</c:if>

<form method="POST">What is your favourite course?<br/>

<input type="text" name="favor" />

<input type="submit" value="submit" />

</form>

?

?

在瀏覽器地址欄中直接訪問c_customLogic.jsp的運行結(jié)果如圖1.11所示,在文本框中輸入“computer”,單擊其中的submit按鈕后的運行結(jié)果如圖1.12所示。

圖1.11

圖1.12

1.3.7? <c:forEach>標(biāo)簽

JSP頁面的顯示邏輯中也經(jīng)常需要對集合對象進行循環(huán)迭代操作,<c:forEach>標(biāo)簽用于對一個集合對象中的元素進行循環(huán)迭代操作,或者按指定的次數(shù)重復(fù)迭代執(zhí)行標(biāo)簽體中的內(nèi)容。<c:forEach>標(biāo)簽有兩種語法格式:

語法1,在集合對象中迭代:

<c:forEach [var="varName"]

? ?? ?? items="collection"

? ?? ?? [varStatus="varStatusName"]

? ?? ?? [begin="begin"] [end="end"] [step="step"]>

? body content

</c:forEach>

語法2,迭代固定的次數(shù):

<c:forEach [var="varName"]

??????? [varStatus="varStatusName"]

??????? begin="begin" end="end" [step="step"]>

? body content

</c:forEach>

<c:forEach>標(biāo)簽的屬性說明如表1.6所示。

表1.6? <c:forEach>標(biāo)簽的屬性

屬性名

是否支持EL

屬性類型

屬 性 描 述

var

false

String

指定將當(dāng)前迭代到的元素保存到page這個Web域中的屬性名稱

items

true

任何支持的類型

將要迭代的集合對象

varStatus

false

String

指定將代表當(dāng)前迭代狀態(tài)信息的對象保存到page這個Web域中的屬性名稱

begin

true

int

如果指定items屬性,就從集合中的第begin個元素開始進行迭代,begin的索引值從0開始編號;如果沒有指定items屬性,就從begin指定的值開始迭代,直到end值時結(jié)束迭代

end

true

int

參看begin屬性的描述

step

true

int

指定迭代的步長,即迭代因子的迭代增量

?

在使用<c:forEach>標(biāo)簽時,需要注意如下幾點說明:

l? 如果指定begin屬性,其值必須大于或等于零;

l? 如果指定步長(step屬性),其值必須大于或等于1;

l? 如果items屬性的值為null,則要處理的集合對象為空,這時不執(zhí)行迭代操作;

l? 如果指定的begin屬性的值大于或等于集合對象的長度,不執(zhí)行迭代操作;

l? 如果指定的end屬性的值小于begin屬性的值,不執(zhí)行迭代操作;

?

<c:forEach>標(biāo)簽的items屬性的值支持下面的數(shù)據(jù)類型:

l? 任意類型的數(shù)組

l? java.util.Collection

l? java.util.Iterator

l? java.util.Enumeration

l? java.util.Map

l? String

items屬性還支持與數(shù)據(jù)庫有關(guān)的數(shù)據(jù)類型java.sql.ResultSet(包括javax.sql.RowSet),這 些數(shù)據(jù)類型將在1.5 節(jié)的數(shù)據(jù)庫標(biāo)簽中進行介紹。對字符串的迭代操作通常使用<c:forTokens>標(biāo)簽或JSTL函數(shù),例如fn:split和 fn:jion,JSTL函數(shù)將在1.7節(jié)進行介紹。

轉(zhuǎn)載于:https://www.cnblogs.com/forevernight/p/3498103.html

總結(jié)

以上是生活随笔為你收集整理的核心标签库(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。