鍍金池/ 問答/Java  PHP  網(wǎng)絡(luò)安全  HTML/ form表單提交時(shí)候有多個(gè)相同name 的input如何處理?

form表單提交時(shí)候有多個(gè)相同name 的input如何處理?

1,有這樣一種場景,首先是一個(gè)form表單,然后 form里面是一個(gè)個(gè)的Item, 每一個(gè)item內(nèi)部包含了一個(gè)input輸入框。

當(dāng)用戶填寫表單 時(shí)候,不同用戶可能會(huì)通過點(diǎn)擊按鈕 添加多個(gè)Item到form表單中, item表單中的數(shù)據(jù)本質(zhì)上會(huì)映射到一個(gè)Bean對(duì)象中。 所以可能 一個(gè)form中有多個(gè)Item,然后相當(dāng)于提交了多個(gè)Bean對(duì)象。

比如說
<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>

有一個(gè)Bean 包含xxx,yyy屬性,然后顯然一個(gè)form-group 可以映射為一個(gè)xxx,yyy。

如果有多個(gè)form-group那么在提交的 時(shí)候會(huì)不會(huì)僅僅提交一個(gè)form-group ,也就是一個(gè)xxx,一個(gè)yyy; 因?yàn)楫吘固峤粩?shù)據(jù)中雖然有多個(gè)xxx,但是名稱重復(fù)了。

如何提交這樣的數(shù)據(jù)??

=====================
測試結(jié)果:


    <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

數(shù)據(jù)上傳成功。

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

clipboard.png

這個(gè)結(jié)果吧數(shù)據(jù)混在一起了,雖然能從順序上看出 哪個(gè)和哪個(gè)是一對(duì)。

回答
編輯回答
我以為

使用request.getParameterMap()返回Map集合,key為name屬性,value為String數(shù)組

2017年5月1日 19:41
編輯回答
孤巷

加中括號(hào)

<input type="text" name="abc[]" />
2018年3月3日 20:27
編輯回答
空痕

問題是,你究竟要多少數(shù)據(jù),不同用戶數(shù)據(jù)的匯總?要去重么?

答:在表單里已經(jīng)有 name='xxx',就彈窗提示,除了特殊的 checkbox

還是每個(gè)用戶的點(diǎn)擊分開來?分開發(fā)送?

答:前端 js 去控制,不同的form-group作為一組數(shù)據(jù)發(fā)送

當(dāng)用戶填寫表單時(shí)候,不同用戶可能會(huì)通過點(diǎn)擊按鈕 添加多個(gè)Item到form表單中,不同用戶的點(diǎn)擊為什么會(huì)匯集到一張表單里?

2017年12月19日 23:07
編輯回答
我以為
<input type="text" name="username[]" />
<input type="text" name="password[]" />

<input type="text" name="username[]" />
<input type="text" name="password[]" />
2017年12月5日 09:33