表达式语言未正确显示空的 ArrayList 元素(Spring MVC 控制器)



我的 Web 应用程序有问题。我使用Spring MVC作为控制器。在我的 JSP 中,我有一个包含多个输入的表单,每个输入都将显示字符串对象的 ArrayList 的内容,这是一个模型属性,如下所示:

<form>
    <c:forEach var="i" begin="0" end="${myArrayListlength}">
        <form:input id="line${i}" type="text" value="${myArrayList[i]}" />
    </c:forEach>
</form>

问题是 ArrayList 的某些元素(理论上甚至是所有元素)可能是空的。显示非空字符串的输入工作正常,对应于空字符串的输入显示所有 ArrayList 元素的串联。假设 ArrayList 包含 4 个元素,"Joe","Mark",","Bob"。该表单将显示以下内容:

Joe
Mark
Joe,Mark,,Bob
Bob

我已经尝试了任何东西来将适当的空输入放在应有的位置,但徒劳无功。我尝试在属性中使用三元表达式,例如

value="${not empty myArrayList[i] ? myArrayList[i] : ''}"

但没有用。

提前感谢任何能帮助我阐明这一点的人。

正如杰克·弗兰普(Jack Flamp)所建议的那样,从弹簧形式切换到普通形式会产生魔力。现在一切都很顺利,不需要三元运算符或其他奇怪的修复。

相关内容

最新更新