모든 언어의 드롭 다운 목록을 만들고 있습니다. 목록의 기본 언어 선택은 사용자가 추가 한 정보에 의해 결정됩니다 : EL 표현식 언어의 두 객체 변수를 비교하는 방법은 무엇입니까?
<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
내가 할 수있는 유일한 일은 언어 문자열이 아닌 서블릿에서 전체 옵션 행에 대한 실제 HTML을 반환하는 것입니다.하지만 추악한 표정이되어 더 우아한 해결책이되기를 바랍니다.
EL에서 두 개의 문자열을 비교하는 가장 빠른 계획은 무엇입니까? 내가 바로 당신을 얻을 있지만, 가장 간단한 방법이 될 경우
'test = "$ {lang eq 'en'}"도 사용할 수 있다고 가정합니다. 거기에'eq'가 보이지만, 문자열 상수는 아닙니다. 그냥 확실히, 나는 종종 JSTL/표현 언어를 자주 사용하지 않는다. – SuckerForMayhem
@Sucker :'eq'는'=='의 별칭이다. 둘 다 똑같습니다. [EL in operators] (http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html)도 참조하십시오. – BalusC
그것은 1 문자 문자열 비교 경우를 제외하고 작동합니다. 그런 다음를 사용하십시오 (큰 따옴표는 간단하게 교체하십시오). http://struts.apache.org/release/2.0.x/docs/why-wont -the-if-tag-evaluate-a-one-char-string.html –
exoddus