使用JSTL set分配Integer值

时间:2014-12-11 20:49:49

标签: java jstl

我只是意识到我无法使用JSTL set标记设置Integer值。我检查了其他帖子,但没有找到相关问题。

我的JSTL代码看起来像

<c:set var="endIndex" 
       value="${fn:length(offeredService) - fn:length(serviceHistory) - 1} lt 0 ? ${fn:length(offeredService)} : ${fn:length(offeredService) - fn:length(serviceHistory) - 1}"/>

我得到的错误是

javax.el.ELException: Cannot convert -1 lt 0 ? 0 : -1 of type class java.lang.String to class java.lang.Integer

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您是否只需要扩展大括号以便三元运算符实际评估?

<c:set var="endIndex" 
    value="${
        (fn:length(offeredService) - fn:length(serviceHistory) - 1) < 0 ? 
        fn:length(offeredService)
        : fn:length(offeredService) - fn:length(serviceHistory) - 1
    }
"/>

实际上,三元运算符在执行块之外,所以它只是像文本一样对待。