1. 程式人生 > >多個同名name提交與後臺引數解析

多個同名name提交與後臺引數解析

簡潔來說,就是form表單有多個input(checkbox,hidden),name同名,後臺是如何接收的。

【1】多個input 同名name

form表單如下:

<form action="testName.do" method="POST" >
        input1: <input type="text" name="userName"/>
        input2: <input type="text" name="userName"/>
        <input type="submit" value="Submit"
/> </form>

後臺接收方法一如下:

這裡寫圖片描述

如圖所示,使用string接收,springmvc會自動將兩個name引數值用“,”隔開,拼成字串賦值給引數userName。

後臺接收方法二如下:

這裡寫圖片描述

如圖所示,後臺使用字串陣列接收,兩個name對應引數值自動封裝為字串陣列。

效果同下:

String[] parameterValues = request.getParameterValues("userName");

【2】checkbox型別引數後臺接收

form表單如下:

<form action="testName.do" method
="POST" > input1: <input type="checkbox" name="userName" value="123"/> input2: <input type="checkbox" name="userName" value="456"/> <input type="submit" value="Submit"/> </form>

後臺接收方法一如下:

這裡寫圖片描述

如圖所示,使用string陣列接收。springmvc直接將checkbox的同名屬性值封裝為陣列賦值給String[] userName

後臺接收方法二如下:

這裡寫圖片描述

同input中接收方法一相同,springmvc會把引數值用“,”分隔拼接成字串賦值給String userName

【3】type=hidden型別引數後臺接收

form表單如下:

<form action="testName.do" method="POST" >
        input1: <input type="hidden" name="userName" value="123"/>
        input2: <input type="hidden" name="userName" value="456"/>
        <input type="submit" value="Submit"/>
</form>

後臺接收效果同【1】【2】。

綜上,如果頁面傳多個同name名引數到後臺,springmvc會根據入參型別分別封裝成陣列或者字串,然後賦值給入參。