springmvc(3)----参数绑定

1. 参数绑定过程:

2. 默认支持的类型:

  直接在Controller方法形参上定义下边类型的对象,就可以使用这些对象。

  2.1. HttpServletRequest

      通过request对象获取请求信息

  2.2. HttpServletResponse

      通过response处理相应信息

  2.3. HttpSession

  2.4. Model/ModelMap

      model是一个接口,modelmap是一个接口实现。

      作用:将model数据填充到request域。

  2.5 简单数据类型

      可以通过@RequestParam对简单类型的参数进行绑定。如果不使用@RequestParam,要求request传入参数名称和Controller方法的形参名称一致,才可以绑定成功。

      如下:

       /**
	 * 删除
	 */
	@RequestMapping("/user_delete")
	public ModelAndView user_delete(@RequestParam(value = "id") Long id) {
		ModelAndView modelAndView = new ModelAndView();
		userService.delete(id);
		modelAndView.setViewName("redirect:user_list");
		return modelAndView;
	}
  2.7 pojo绑定

      要求页面中input的name和Controller中pojo形参中属性名称一致,才可以将页面中的数据绑定到pojo,如下:

jsp页面:
<tbody>
	<tr>
	    <td width="100">岗位名称</td>
	    <td><input type="text" name="name" class="InputStyle">*</td>
	</tr>
	<tr>
	    <td>岗位说明</td>
	    <td><textarea name="description" class="TextareaStyle"></textarea></td>
	</tr>
</tbody>
/**
	 * 添加
	 */
	@RequestMapping(value="/role_add")
	public ModelAndView role_add(HttpServletRequest request,Role role){
		ModelAndView modelAndView = new ModelAndView();
		roleService.add(role);		
		modelAndView.setViewName("redirect:role_list");
		return modelAndView;
	}

pojo类:
public class Role implements Serializable {

	private static final long serialVersionUID = -7625883839295666830L;

	private Long roleId;

	private String name;

	private String description;
如上,此时页面中input的name参数,和Controller中Role对象对应的属性名称name必须保持一致,才可以绑定成功。

  2.8 自定义参数绑定,实现日期类型绑定:

      对于Controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定,将请求日期数据转换成日期类型,要转换的日期类型好pojo中日期属性的类型要保持一致。如下:

/**
 * 自定义日期转换器
 * @author cr
 *
 */
public class CustomDateConverter implements Converter<String,Date>{

	@Override
	public Date convert(String source) {
		// 实现将日期字符串转换成日期类型(格式:yyyy-MM-dd HH:mm:ss)
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			//转换成功,直接返回
			return simpleDateFormat.parse(source);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//转换失败,返回null
		return null;
	}

}

  2.9 集合类型参数绑定:

      2.9.1 数组:直接在形参中定义,如方法:user_delete(Integer[] userIds)。

      2.9.2 list绑定:input的name和controller方法形参的pojo的属性list名称保持一致。

      2.9.3 map/set绑定:同list。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值