多個同名name提交與後臺引數解析
阿新 • • 發佈:2019-02-11
簡潔來說,就是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會根據入參型別分別封裝成陣列或者字串,然後賦值給入參。