我正在创建一个包含所有语言的下拉列表。该列表的默认语言选择将由用户添加的信息确定:
<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
在EL中似乎不存在。通过查看这里,建议我编写自己的函数,然后导入并使用它。由于这只是针对此页面的一次性小事情,我不想为此开始创建库等等。我也不想开始创建专门的对象让servlet返回带有此额外信息的对象。
我唯一能想到的是从servlet返回整个选项行的实际html,而不仅仅是语言字符串,但我认为那很丑陋,所以我希望有更优雅的解决方案。
比较两个字符串的EL最佳快速修复计划是什么?
test="${lang eq 'en'}"
吗?我看到上面有eq
,但它不是与字符串常量一起使用的吗?只是想确保一下,因为我并不经常使用JSTL/表达式语言。 - mswiebodaeq
是==
的别名。它们的作用完全相同。请参见EL运算符。 - BalusC&&
或||
添加多个测试条件(即多于一个)? - KNU<c:if test="${game_type == 'board game'} || ${game_type == 'outdoor game'}">
这样写是正确的吗? - KNU