表达式语言未正确显示空 ArrayList 元素(Spring MVC 控制器)
Expression language not properly displaying empty ArrayList elements (Spring MVC controller)
我的网络应用程序有问题。我使用 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] : ''}"
但没用。
提前感谢任何能帮助我阐明这一点的人。
正如 Jack Flamp 所建议的那样,从 Spring 形式转换为普通形式产生了魔力。现在一切正常,不需要三元运算符或其他奇怪的修复。
我的网络应用程序有问题。我使用 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] : ''}"
但没用。
提前感谢任何能帮助我阐明这一点的人。
正如 Jack Flamp 所建议的那样,从 Spring 形式转换为普通形式产生了魔力。现在一切正常,不需要三元运算符或其他奇怪的修复。