默认参数有 HttpServletRequest, HttpServletResponse, HttpSession, Model/ModelMap,ModelMap是Model接口的实现类,如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。
简单参数:
当请求的参数名称和处理器形参名称一致时会将请求参数与形参进行绑定
参数类型推荐使用包装数据类型,因为基础数据类型不可以为null
整形:Integer、int
字符串:String
单精度:Float、float
双精度:Double、double
布尔型:Boolean、boolean
使用@RequestParam常用于处理简单类型的绑定。
参数:
value:参数名字,即入参的请求参数名字,如value="item_id"示请求的参数区中的名字为item_id的参数的值将传入;
required : 是否必须,默认是 true ,表示请求中一定要有相应的参数,否则将报;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值
如:public String editItem(@RequestParam(value="item_id",required=true) String id) {}形参名称为id,但是这里使用value=" item_id"限定请求的参数名为item_id,所以页面传递参数的名必须为item_id。
这里通过required=true限定item_id参数为必需传递,如果不传递则报400错误,可以使用defaultvalue设置默认值,即使required=true也可以不传item_id参数值
pojo参数:
使用pojo接受表单数据,要求pojo对象中的属性名和表单中input的name属性一致。注意:提交的表单中不要有日期类型的数据,否则会报400错误。如果想提交日期类型的数据需要用到自定义参数绑定的内容。
绑定pojo:
Public class QueryVo {
private Items items;
}
<input type="text" name="items.name" />
<input type="text" name="items.price" />
public String useraddsubmit(Model model,QueryVo queryVo)throws Exception{
System.out.println(queryVo.getItems());
数组绑定:
可以用String[]接收,或者pojo的String[]属性接收,页面传递的name和接受的name要一致
list绑定:
List中存放对象,并将定义的List放在包装类中,使用包装pojo对象接收。Name属性必须是包装pojo的list属性+下标+元素属性,接收List类型的数据必须是pojo的属性,方法的形参为List类型无法正确接收到数据。
foreach标签中varStatus属性常用参数总结下:
${status.index} 输出行号,从0开始。
${status.count} 输出行号,从1开始。
${status.current} 当前这次迭代的(集合中的)项
${status.first} 判断当前项是否为集合中的第一项,返回值为true或false
${status.last} 判断当前项是否为集合中的最后一项,返回值为true或false
begin、end、step分别表示:起始序号,结束序号,跳跃步伐。