Почему $ {flag == Y} возвращает True, а $ {flag == 'Y'} возвращает False? - PullRequest
0 голосов
/ 01 июля 2019

Меня смущает поведение ниже.Флаг переменной передается из контроллера в код jsp:

flag: <c:out value="${requestScope.flag}"/> 
flag eq 'Y': ${requestScope.flag eq 'Y'}
flag == 'Y': ${requestScope.flag=='Y'}
flag==Y: ${requestScope.flag==Y}

Случай 1: флаг не передается в просмотр (вывод):

flag: 
flag eq 'Y': false 
flag == 'Y': false 
flag==Y: true

Случай 2: флаг со значением «Y»передается для просмотра:

flag: Y
flag eq 'Y': true 
flag == 'Y': true 
flag==Y: false

Ответы [ 2 ]

5 голосов
/ 01 июля 2019

requestScope.flag==Y означает сравнение с переменной Y, которая не определена

Таким образом, когда отправляется флаг, неопределенная переменная не равна флагу и возвращает ложь во втором случае,

Хотя в первом случае обе являются неопределенными переменными, поэтому он возвращает true

1 голос
/ 01 июля 2019

'Y' - это строка со значением 'Y', а Y - это переменная.

...