У меня есть карта userDetailsMap<String,List<String>>
, доступная в моем jsp.
И eligibleUser,notEligibleUser,enrolledUser
являются ключами.
Я могу легко проверить ключ внутри s:iterator
тег.ContainsKey in JSP
Как (Этот код работает):
<s:iterator var="userDetailsMap" value="context.userDetails">
<s:if test="%{#userDetailsMap.key=='eligibleUser'}">
//some code
</s:if>
<s:if test="%{#userDetailsMap.key=='notEligibleUser'}">
//some code
</s:if>
<s:if test="%{#userDetailsMap.key=='enrolledUser'}">
//some code
</s:if>
</s:iterator>
Но как проверить, что конкретный ключ присутствует или нет? я использовал:
1.
<s:if test="%{#userDetailsMap['eligibleUser'] == null}">
//some code
</s:if>
2.
<s:if test="%{#userDetailsMap.containsKey('eligibleUser')}">
//some code
</s:if>
Но оба они не работали.
Пожалуйста, предложите мне.
Ваших ключи неверны: 'userDetailsMap' вместо «eligibleUser» (или другой ключ). Я не знаю синтаксиса OGNL, но когда я вижу что-то вроде этого, я сразу же думаю, что этот «Map», содержащий три ключа, должен быть заменен компонентом, содержащим три списка. –
Здесь у нас есть карта, а не ключ. –
Вы проверяете, является ли '#userDetailsMap. ['UserDetailsMap']' равно null. Это не имеет никакого смысла. Это должно быть #userDetailsMap. ['EligibleUser']. Карта не содержит себя как ключ. –