一尘不染

用$ {fn:toLowerCase($ {Person.name})}这样的EL变量调用EL函数不起作用

jsp

我正在将bean:传递Person到我的jsp页面,并且我想用小写字母打印他的名字。为此,我正在调用jstl的function
toLowerCase,但这不起作用:

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

相反,我必须设置变量

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

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


阅读 184

收藏
2020-06-08

共1个答案

一尘不染

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

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

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

2020-06-08