form表单提交时候有多个相同name 的input如何处理?

1,有这样一种场景,首先是一个form表单,然后 form里面是一个个的Item, 每一个item内部包含了一个input输入框。

当用户填写表单 时候,不同用户可能会通过点击按钮 添加多个Item到form表单中, item表单中的数据本质上会映射到一个Bean对象中。 所以可能 一个form中有多个Item,然后相当于提交了多个Bean对象。

比如说
<form>

<form>
 <div class="form-group ">
         <input name="xxx"/>
         <input name="yyy"/>
</div>
 <div class="form-group ">
  <input name="xxx"/>
  <input name="yyy"/>
</div>

</form>

有一个Bean 包含xxx,yyy属性,然后显然一个form-group 可以映射为一个xxx,yyy。

如果有多个form-group那么在提交的 时候会不会仅仅提交一个form-group ,也就是一个xxx,一个yyy; 因为毕竟提交数据中虽然有多个xxx,但是名称重复了。

如何提交这样的数据??

=====================
测试结果:


    <form action="/test/form" method="post">

        <div>
            <input type="text" name="username" /> <input type=text
                name="password" />


        </div>
        <div>
            <input type="text" name="username"/> <input type=text
                name="password" />


        </div>
        <input type="submit" value="登陆"/>
    </form>

clipboard.png

数据上传成功。

第一种方案:
Map<String, String[]> parameterMap = request.getParameterMap();

clipboard.png

这个结果吧数据混在一起了,虽然能从顺序上看出 哪个和哪个是一对。

阅读 16.6k
4 个回答

使用request.getParameterMap()返回Map集合,key为name属性,value为String数组

问题是,你究竟要多少数据,不同用户数据的汇总?要去重么?

答:在表单里已经有 name='xxx',就弹窗提示,除了特殊的 checkbox

还是每个用户的点击分开来?分开发送?

答:前端 js 去控制,不同的form-group作为一组数据发送

当用户填写表单时候,不同用户可能会通过点击按钮 添加多个Item到form表单中,不同用户的点击为什么会汇集到一张表单里?

<input type="text" name="username[]" />
<input type="text" name="password[]" />

<input type="text" name="username[]" />
<input type="text" name="password[]" />

加中括号

<input type="text" name="abc[]" />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题