Pytanie Porównywanie ciągów w EL [duplikat]


To pytanie już zawiera odpowiedź:

Daję obiekt User do JSP i chcę porównać atrybut użytkownika z danym Stringiem. To, co teraz robię, jest następujące:

<input type="radio" name="lang" value="ger" <c:if test="${user.comLanguage.equals("ger")}">checked="yes"</c:if>/>German</br>

Ale wszystko, co otrzymuję, to następujący wyjątek:

org.apache.jasper.JasperException: /WEB-INF/jsp/library/home.jsp (line: 22, column: 95) equal symbol expected

gdzie kolumna 95 jest jedną z liter z comLanguage.

Jaka jest prawidłowa składnia?


11
2017-12-02 11:30


pochodzenie


Twoja początkowa składnia będzie przy okazji działać, jeśli używasz EL 2.2. i użyj pojedynczych cytatów zamiast podwójnych cytatów w wywołaniu metody. - BalusC


Odpowiedzi:


Spróbuj tego :

<c:if test="${user.comLanguage=='ger'}">

Możesz także spróbować potrójnego, jeśli:

${user.comLanguage=='ger' ? 'checked' : ''}

19
2017-12-02 11:34



+1. Lub zamiast ==, słowo kluczowe eq robi to samo - Sean Patrick Floyd
Wygląda na to, że EL używa obiektów Java, ale nie wszystkie jego metody. Dziękuję Ci. - whitehat