2016-04-06 8 views
-1

Ich habe versucht herauszufinden, wie ich testen kann, ob das Objekt der Liste die gleichen wie die Schlüssel einer Karte ist.Wie kann ich überprüfen, ob ein Objekt in einer Liste mit dem Schlüssel einer Map in JSP mit JSTL- oder Struts-Tags übereinstimmt?

Java-Klasse:

private Map<String, List<Country>> continent; 
private List<Country> countries; 

Land:

private String continentCode; 
private String countryCode; 
//other attributes 

des Kontinents Map Schlüssel ist continentCode.

jsp:

<s:iterator value=countries var=country> 
    <c:when test="${not empty continent[country.continentCode]}"> 
     <s:property value="country.continentCode"/> 
     <s:property value="country.countryCode"/> 
    </c:when> 
</s:iterator> 

Ich bin mit dem <c:when> Tag nicht sicher. Die Idee ist, dass, wenn der continentCode in der Kontinentkarte existiert, das Country Objekt der Liste angezeigt wird.

+0

Ich glaube, ich Tag vergessen. Aber ansonsten funktioniert mein Code. – ERCK

Antwort

0

tun Ich glaube, ich habe vergessen, ein <c:choose> Tag. Aber ansonsten funktioniert mein Code.

<s:iterator value=countries var=country> 
<c:choose>  
    <c:when test="${not empty continent[country.continentCode]}"> 
    <s:property value="country.continentCode"/> 
    <s:property value="country.countryCode"/> 
    </c:when> 
</c:choose> 

0

Ihr Code funktioniert nicht, weil <c:choose> fehlt.

<s:iterator value="countries" var="country"> 
    <c:choose> 
    <c:when test="${not empty continent[country.continentCode]}"> 
     <s:property value="%{#country.continentCode}"/> 
     <s:property value="%{#country.countryCode}"/> 
    </c:when> 
    </c:choose> 
</s:iterator> 

Mit Struts-Tags können Sie

<s:iterator value="countries" var="country"> 
    <s:if test="continent[#country.continentCode] != null"> 
     <s:property value="%{#country.continentCode}"/> 
     <s:property value="%{#country.countryCode}"/> 
    </s:if>  
</s:iterator> 
+0

Danke Roman. Land ist bereits in Reichweite. Ich habe einen Fehler in meinem Code gefunden. Ich habe vergessen. – ERCK