5

私が使用する必要があるクッキーを取得している間:

<c:forEach items="${cookie}" var="currentCookie">  
    ${currentCookie.value.name} </br>
</c:forEach>

しかし、カスタム配列を使用しているときに、なぜ .value 関数をスキップする必要があるのでしょうか?

<c:forEach items="${myList}" var="myList">  
    ${myList.name} </br>
</c:forEach>

Cookie には、Cookie の内容を文字列形式で返す .getValue 関数() が含まれています。

4

1 に答える 1

14

は、Cookie 名をマップ キーとして、オブジェクトをマップ値として持つ を${cookie}指します。inを反復するたびにback が返され、次にandメソッドが返されます。あなたの混乱は、オブジェクトがメソッド持っているということです。Map<String, Cookie>CookieMap<c:forEach>Map.EntrygetKey()getValue()CookiegetValue()

<c:forEach items="${cookie}" var="currentCookie">  
    Cookie name as map entry key: ${currentCookie.key}<br/>
    Cookie object as map entry value: ${currentCookie.value}<br/>
    Name property of Cookie object: ${currentCookie.value.name}<br/>
    Value property of Cookie object: ${currentCookie.value.value}<br/>
</c:forEach>

これMap<String, Cookie>は、名前が事前にわかっている場合に、Cookie の値に簡単に直接アクセスできるためです。以下の例では、次のように想定していますcookieName

${cookie.cookieName.value}

ちなみに、リストの例は無効です。はvar、リスト自体と同じ名前を参照してはなりません。

于 2012-06-04T15:05:31.043 に答える