Мне кажется, что вы делаете это более сложным, чем могло бы быть. Я просто сделал бы
req.setAttribute("userDetails", userDetails);
и в JSP проверил, совпадает ли текущий идентификатор пользователя сподробное описание:
<c:if test="${userDetails.id == currentUser.id}">
<p>Details</p>
</c:if>
Кстати, param.foo возвращает значение параметра запроса, а не значение атрибута запроса.Вы можете сделать то, что вы хотели, используя
<c:if test = "${!empty requestScope[currentUser.id]}">
Запись []
вместо оператора .
- это способ передачи динамического имени, а не статического.