Божо уже ответил на реальную причину проблемы.В Java значения объекта должны сравниваться методом equals()
.Строки - это объекты, а не примитивы.Обратите внимание, что эта проблема связана не с JSP, а с базовой Java.
Я просто хотел указать правильный путь для этого: используйте taglibs / EL.Сначала установите, если необходимо, JSTL (например, Tomcat не поставляется с ним из коробки), а затем объявите его поверх вашей JSP.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Ваш первый фрагмент кода может бытьдостигается следующим образом:
<c:set scope="session" var="category" value="${param.category}" />
Ваш второй фрагмент кода может быть получен следующим образом:
<c:if test="${category == 'movie'}">Movie details</c:if>
<c:if test="${category == 'music'}">Music details</c:if>
или
<c:choose>
<c:when test="${category == 'movie'}">Movie details</c:when>
<c:when test="${category == 'music'}">Music details</c:when>
<c:otherwise>Unknown category</c:otherwise>
</c:choose>
Да, сравнение строк по ==
действует в EL.Для этого он будет использовать equals()
.