1

我正在传递一个 bean:Person到我的 jsp 页面,我想以小写形式打印他的名字。为此,我正在调用 jstl 的函数toLowerCase,但这不起作用:

<c:out value="${fn:toLowerCase(${Person.name})}"

相反,我必须设置变量

<c:set var="personName" value="${Person.name}"/>
<c:out value="${fn:toLowerCase(personName)}"

有没有更语法友好的方式来做到这一点?

4

1 回答 1

3

嵌套 EL 表达式是非法语法。您遇到的异常也应该以某种方式暗示这一点,但没有说明任何事情。您应该将 EL 表达式${... ...}视为一个大的全局范围,其中各种 EL 范围的变量和函数可以相互交互。您的第二次尝试是正确的。只需在初始尝试中应用相同的内容:

<c:out value="${fn:toLowerCase(Person.name)}"/>

顺便说一句,我宁愿尊重Java 命名约定和小写实例变量名称Personperson. 您也不会Person Person = new Person();使用普通的 Java 代码,对吧?

于 2013-10-10T09:57:02.693 回答