在这种情况下如何使用嵌套EL?

时间:2014-06-27 14:02:45

标签: java jstl el

我将empId设为600,并在会话对象下将其设为400。我想在它上面应用jstl函数。基本上 我想在" 600-400"

上应用我的项目特定Taglib功能

我试过以下

"${myProject:Taglib(${sessionScope.empId}-${sessionScope.custId})}"

但低于错误

javax.el.ELException: Failed to parse the expression [${myProject:TaglibFunction(${sessionScope.empId]

我知道我可以分两行进行,即

 <c:set var="intermediateVar" value="${sessionScope.empId}-${sessionScope.custId}" scope="page" />

 var finalValue= "${myProject:TaglibFunction(intermediateVar)}";

但有没有办法可以用单线做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您已经在表达式中,则不应再次使用$ {}。尝试:

编辑:变量empId和custId是什么类型的? TagLibFunction的参数是什么类型的?从您的问题看,该方法看起来正在寻找empId(破折号)custId的字符串连接。没有关于后端函数/变量的更多细节我只在这里猜测

而不是:

"${myProject:TaglibFunction(sessionScope.empId + '-' + sessionScope.custId)}"

尝试:

"${myProject:TaglibFunction(sessionScope.empId-sessionScope.custId)}"

无论哪种方式,您的问题都源于嵌套表达式。的 $ {$ {}}