2017-10-19 68 views
0

我的web应用程序有问题。我使用Spring MVC作为控制器。在我的JSP我有一个包含一种形式的若干输入,其中的每一个将显示字符串对象的ArrayList,这是一个模型属性的内容,这样的:表达式语言没有正确显示空的ArrayList元素(Spring MVC控制器)

<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

表单输入从页面中消失:( –

+1

好吧,使用spring表单标签和普通表单标签是有区别的,也许你不需要spring标签,试着去掉输入标签中的form:部分。 –

回答

0

正如Jack Flamp所建议的那样,从Spring形式转换为普通形式确实具有魔力。现在一切正常,不需要三元运算符或其他奇怪的修复。