1、代码示例
基本框架代码可复制https://blog.csdn.net/weixin_35798336/article/details/112597051,在此基础上修改hello.jsp、web.xml、UserController。新增一个实体类Account,用于演示javaBean参数,以及数组参数。
jsp文件:
<form action="param/save" method="post">
名字:<input type="text" name="name" /><br/>
密码:<input type="text" name="password" /><br/>
list<input type="text" name="list[0].name" /><br/>
list<input type="text" name="list[0].password" /><br/>
map<input type="text" name="map['map'].name" /><br/>
map<input type="text" name="map['map'].password" /><br/>
<input type="submit" value="tijiao" /><br/>
</form>
web.xml 新增中文乱码处理器
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- 指定字符集 解决中文乱码问题-->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
@RequestMapping(path="param/save")
public String paramTest(Account account){
System.out.println("登陆成功");
System.out.println(account);
return "success";
}
package com.chen.domain;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
public class Account implements Serializable {
//传入Account bean对象
private String name;
private String password;
//传入数组类型
private List<Account> list;
private Map<String,Account> map;
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public List<Account> getList() {
return list;
}
public void setList(List<Account> list) {
this.list = list;
}
public Map<String, Account> getMap() {
return map;
}
public void setMap(Map<String, Account> map) {
this.map = map;
}
@Override
public String toString() {
return "Account{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
", list=" + list +
", map=" + map +
'}';
}
}
返回值:
Account{name=‘a’, password=‘aaaaaaaa’, list=[Account{name=‘list1’, password=‘list1’, list=null, map=null}], map={map=Account{name=‘map’, password=‘测试utf8’, list=null, map=null}}}
2、绑定机制
- 绑定机制
- 表单提交的数据都是k=v格式的 username=haha&password=123
- SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
- 要求:提交表单的name和参数的名称是相同的
- 支持的数据类型
- 基本数据类型和字符串类型
- 实体类型(JavaBean)
- 集合数据类型(List、map集合等)