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

时间:2017-10-19 10:44:27

标签: spring-mvc arraylist el

我的网络应用程序存在问题。我使用Spring MVC作为控制器。在我的JSP中,我有一个包含多个输入的表单,每个表单都会显示一个String对象的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] : ''}"

但没有用。

提前感谢所有帮助我了解这一点的人。

1 个答案:

答案 0 :(得分:0)

正如Jack Flamp所说,从Spring形式切换到普通形式是神奇的。现在一切顺利,无需三元运算符或其他奇怪的修复。