Оператор +
всегда означает числовое сложение в языке выражений JSP . Чтобы выполнить конкатенацию строк, вам нужно будет использовать несколько смежных выражений EL, например $ {str1} $ {str2}
.
Если я правильно прочитал ваш пример, это можно было бы записать как:
${var1 == 0 ? 'hi' : 'hello '}${var1 == 0 ? '' : var2}
Другой возможностью было бы использовать JSTL , который длиннее, но может быть яснее, если есть больше текста, который зависит от on var1
:
<c:choose>
<c:when test="${var1 == 0}">hi</c:when>
<c:otherwise>hello <c:out value="${var2}"/></c:otherwise>
</c:choose>
c: out
может не понадобиться в зависимости от версии JSP.