Ich erstelle eine Dropdown-Liste aller Sprachen. Die Standardsprache Auswahl für die Liste wird vom Benutzer hinzugefügt Informationen bestimmt werden:Wie zwei Objektvariablen in EL Ausdruck Sprache zu vergleichen?
<select>
<c:forEach items="${languages}" var="lang">
<c:choose>
<c:when test="${lang}.equals(${pageLang})">
<option value="${lang}" selected>${lang}</option>
</c:when>
<c:otherwise>
<option value="${lang}">${lang}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
.equals
nicht in EL zu existieren scheint. Nach einem Blick hier ist es vorgeschlagen, dass ich meine eigene Funktion schreibe und dann importiere und benutze. Da dies eine einmalige kleine Sache nur für diese Seite ist, möchte ich nicht erst Bibliotheken dafür erstellen müssen. Ich möchte auch nicht damit beginnen, spezielle Objekte zu erstellen, damit das Servlet mit diesen zusätzlichen Informationen zurückkehren kann.
Ich denke nur, dass ich den tatsächlichen HTML-Code für die ganze Optionszeile aus dem Servlet zurückgeben soll, anstatt nur die Sprachzeichenfolge, aber das erscheint mir hässlich, also hoffe ich, dass es eine elegantere Lösung gibt.
Was ist der beste Plan für eine schnelle Lösung zum Vergleich zweier Strings in EL?
Ich gehe davon aus, dass ich 'test =" $ {lang eq 'en'} "dann auch verwenden kann? Ich sehe 'eq' da oben, aber es war nicht mit String-Konstanten? Ich stelle nur sicher, dass ich mich nicht häufig mit JSTL/Ausdruck sprache beginne – SuckerForMayhem
@Sucker: 'eq' ist ein Alias für' == '. Sie machen beide genau gleich. Siehe auch [Operatoren in EL] (http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html). – BalusC
Es funktioniert AUSSER in 1 Buchstaben String Vergleich. Dann sollten Sie
exoddus