form表单—3种参数
共有三种形式
form表单中的元素的name属性值 和 后台对应方法中的参数名保持一致。
(1) 参数是基本类型, name属性值和参数名保持一致
(2)后台方法的参数是自定义实体类,如Person。name属性值和实体类的属性名保持一致
(3)后台方法的参数是自定义实体类,而且实体类的一个属性是另一个自定义实体类。name属性值和实体类的属性名的属性名保持一致。比如name=area.id
第1种:提交基本类型的参数到后台
form表单中的元素的name属性值 和 后台对应方法中的参数名保持一致
html代码
<form id="editForm" action="app/edit/destination" method='POST'>
<div>
名称<input id="getName" name="param1" />
</div>
<div>
id<input id="getAreaId" name="param2" />
</div>
<input type="submit" value="提交" />
</form>
java代码
@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Long param1, String param2) {
//处理参数
}
第2种:传递一个自定义实体类对象到后台,实体类的字段都是基本类型
新建实体类Class
public class Class {
private int id;
private String name;
}
html代码
<form id="editForm" action="app/edit/destination" method='POST'>
<div>
名称<input id="getName" name="id" />
</div>
<div>
id<input id="getAreaId" name="name" />
</div>
<input type="submit" value="提交" />
</form>
java代码
@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Class class) {
//处理参数
}
第3种:传递一个自定义实体类对象到后台,实体类的某个字段是另一个自定义实体类
新建实体类Person,包含字段name,age,sex,myclass
public class Person {
public String name; //(1)姓名
private int age;//(2)年龄
private int sex;
private Class myclass; //(4)自定义实体类
}
html代码
<form id="editForm" action="app/edit/destination" method='POST'>
<div>
<input name="name" value="smx" />
</div>
<div>
<input name="age" value="23" />
</div>
<div>
<select name="sex">
<option value="0">男</option>
<option value="1">女</option>
</select>
</div>
<!-- -->
<div>
<input name="myclass.name" value="1年级"/>
</div>
<div>
<input name="myclass.id" value="1"/>
</div>
<input type="submit" value="提交" />
</form>
java代码
@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Person person) {
//处理参数
}
在ajax请求的控制器方法中,如果返回一个页面路径,不需要加@ResponseBody
否则,不管控制器方法有没有返回值,都要加@ResponseBody