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

Java 在这种情况下如何使用嵌套EL?,java,jstl,el,Java,Jstl,El,在session对象下,empId为600,custId为400。我想对它应用jstl函数。大体上 我想在600-400上应用特定于项目的Taglib函数 我试着像下面一样 "${myProject:Taglib(${sessionScope.empId}-${sessionScope.custId})}" 但在误差以下 javax.el.ELException: Failed to parse the expression [${myProject:TaglibFunction(${sess

在session对象下,empId为600,custId为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)}";

但是有没有一种方法可以在单行中完成呢?

当您已经在一个表达式中时,您不必再次使用${}。尝试:

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

而不是:

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


不管怎样,您的问题都源于嵌套表达式${${}

它不工作。为输入字符串提供错误,即java.lang.NumberFormatException:-已编辑。希望能有帮助。只是不要使用内部${}。从同一表达式引用其他变量应该可以。否。不能按所需的方式嵌套el表达式。
"${myProject:TaglibFunction(sessionScope.empId-sessionScope.custId)}"