java - Html 多个具有相同名称的输入元素

标签 java html spring-mvc

昨天我遇到了一个具体且有趣的问题。假设我们有以下 html 代码块:

<div id="addresses">
 <input type="text" name="address" id="addr1" />
 <input type="text" name="address" id="addr2" />
 <input type="text" name="address" id="addr3" />
</div>

发布此表单时,将连接具有相同名称的输入元素,并用逗号字符分隔值。例如,如果我们有这样的值:

addr1 = 'TEST TEST XXX'
addr2 = 'YYY ZZZ 11111'
addr3 = 'ZZZ KKK TEST '

提交的表单post数据如下:

address = 'TEST TEST XXX', 'YYY ZZZ 11111', 'ZZZ KKK TEST '

然后我可以将这些值中的每一个作为服务器端数组的元素获取(数组的 3 个不同元素)。但如果值是这样的:

addr1 = 'TEST, TEST XXX'
addr2 = 'YYY ZZZ, 11111'
addr3 = 'ZZZ KKK, TEST '

那么提交的表单数据就变成:

address = 'TEST, TEST XXX', 'YYY ZZZ, 11111', 'ZZZ KKK, TEST '

那么结果数组包含 6 个元素,这是完全错误的。我相信值中包含的逗号字符不会被转义。

关于这个问题的任何想法。提前致谢...

最佳答案

使用此 HTML

<div id="addresses">
    <form:input path="address[0]"  />
    <form:input path="address[1]"  />
    <form:input path="address[2]"  />
</div>

Spring 应该使用 String[] 地址 服务器端对象的值填充您的输入文本,反之亦然。

您可以在这里查看:http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/

关于java - Html 多个具有相同名称的输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42368891/

相关文章:

javascript - 在特定页面位置更改 div css

javascript - jQuery setAttribute 中的图像没有改变

java - 保留和释放数据

java - Spring Rest Hibernate 创建嵌套对象

rest - 当不支持 HTTP 方法时向客户端发送消息

java - 在 Java 中使用包装器作为适配器的正确设计模式是什么

java - 如何在 Jesque 中使用 ConfigBuilder 配置 Heroku redis 连接?

java - 使用 JDOM 重写 XML/DOM 树时出现问题 (ConcurrentModificationException)

java - 使用 Selenium 自动化聊天机器人时如何从最新的聊天气泡中获取文本

javascript - 点击事件目标排除子项