2017-04-11 7 views
1

マップにはユーザーIDであるキーが含まれている地図(スプリングコントローラからリダイレクトする)に依存するリストに値を設定しようとします。私のコードは以下のようになります。マップにキーが含まれているかどうかの確認

<%@ page session="false"%> 
<%@ taglib prefix="t" tagdir="/WEB-INF/tags"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables"%> 
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 

<datatables:table id="users" url="${datasource}" serverParams="APP.datatables.helpers.extraParamsUsersList" serverSide="true" cssClass="appDataTable" autoWidth="false" stateSave="true" row="user" paginate="true" paginationType="full_numbers" info="false" filter="true" dom="plrtip" ext="columnFilterCallback" filterPlaceholder="none" displayLength="10"> 
    <!-- --> 
    <c:set var="result" value="false"/> 
    <c:forEach var="entry" items="${boxes}">       
     <c:if test="${entry.key != user.id}"> 
      <c:set var="result" value="true"/> 
     </c:if> 
    </c:forEach> 
    <c:if test="${result}"> 
     <!-- some code --> 
    </c:if> 
</datatables:table> 

マップは空ではなく、いくつかのusersのキーが含まれていますがresultは常にfalseです。私はユーザーID(例えば1)の本当の価値が与えられた場合、私は正しい結果を得ることを確認した。私は何が間違っているか考えていますか?

答えて

0
<c:if test="${entry.key != user.id}"> 

きっとあなたは

<c:if test="${entry.key == user.id}"> 

を意味しかし、あなたはマップを反復する必要はありません。ちょうどcontainsKey()を使用してください。

+0

はい、間違ったバージョンの状態を追加しましたが、それでも機能しません。ごめんなさい。私はここに書き込む前に 'containsKey()'と他の解決策を試してみました(そして私はもう一度それを確認しました)が、常にfalseを返します。 – joamor

関連する問題