0

次の配列があります。

List<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>();

[{name=BIRTH_DATE}, {catVal=07.11.2011}, {catStat=162}, {catVal=30.04.2011}, {catStat=108}, {CatVal=26.01.2011}]

JSTL を使用して、name、catVal、CatStat のいずれかを選択したいと考えています。以下を試してみましたが、うまくいきません。どうすれば鍵を入手できますか?

<table border="1">
<c:forEach items="${xml}" var="map">
    <tr>
        <c:choose>
            <c:when test="${map.key =='name'}">
                <td>${map.name}</td> 
            </c:when>
            <c:when test="${map.key == 'catVal'}">
                <td>${map.catVal}</td> 
            </c:when>
            <c:when test="${map.key == 'catStat'}">
                <td>${map.catStat}</td> 
            </c:when>
        </c:choose>

    </tr>
</c:forEach>

4

1 に答える 1

0

リクエスト/セッション${xml}の属性が含まれていると仮定します:array

  • Maps のエントリを直接読み取ろうとしています。sであるリストから要素の読み取りを開始する必要がありますMap
  • JSTLを使用してHashMap内でArrayListを反復する方法から? 、マップの現在のエントリ値にアクセスするために間違った構文を使用しています。entry.valueコードで使用する必要があります。

    <table border="1">
        <c:forEach items="${xml}" var="itemMap">
            <c:forEach items="${itemMap}" var="mapEntry">
            <tr>
                <td>
                    <c:choose>
                        <c:when test="${mapEntry.key == 'name'}">
                            <c:out value="Name:" />
                        </c:when>
                        <c:when test="${mapEntry.key == 'catVal'}">
                            <c:out value="Cat value:" />
                        </c:when>
                        <c:when test="${mapEntry.key == 'catStat'}">
                            <c:out value="Cat status:" /> 
                        </c:when>
                    </c:choose>
                </td>
                <td>
                    ${mapEntry.value}
                </td>
            </tr>
            </c:forEach>
        </c:forEach>
    </table>
    
于 2013-03-31T21:43:10.487 に答える