Springmvc的参数绑定


一、简单数据绑定,处理器形参中添加如下类型的参数,处理器会默认识别并进行赋值

1、  HttpServletRequest:通过request对象获取请求信息

2、  HttpServletResponse:通过response处理响应信息

3、  HttpSession:通过session对象得到session中存放的对象

4、  Model/ModelMap:ModelMapModel接口的实现类,通过ModelModelMap向页面传递数据

@RequestMapping(“/list”)

public String getUsers(HttpServletRequest request){

}

HttpServletResponse

HttpSession

同上

 

@RequestMapping(“/list”)

public String getUsers(HttpServletRequest request,Model model){

model.addAttribute(“users”,obj);

return “list”;

}

jsp页面通过${users.xxx}获取数据对象的属性

 

如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。

5、  简单数据类型,当请求的参数名称和处理器形参名称一致时会将请求参数与形参绑定。

支持的数据类型:参数类型推荐使用包装数据类型,因为基础数据类型不可以为null

整型:Integerint

字符串:String

单精度:Floatfloat

双精度:Doubledouble

布尔型:Booleanboolean—请求的参数值为truefalse

public String editItem(Model model,Integer id,Boolean status) throws Exception

6、  @RequestParam:使用@RequestParam可用于处理简单类型的绑定。

                  

public String editItem(@RequestParam(value=" id",required=true) String id) {

        

}

                   @RequestParam中的参数

                   value:参数的名字,即入参的请求参数名字

                   required:是否必须,默认为true,表示请求中一定要有相应的参数,否则400错误。

                   defalutValue:默认值,表示如果请求中没有同名参数时的默认值。

                  

 

二、高级绑定

1、   绑定pojo-简单java对象(普通的javabean):如果提交的参数很多,或提交的表单中的内容很多的时候可以使用pojo接收数据,要求pojo对象中的属性名和表单中inputname属性已知。

页面:

<input type="text" name="name"/>

<input type="text" name="price"/>

POJO

public class Product{

private String name;

private double price;

}

处理器:

public String addProduct(Product product){

 

}

注意:提交的表单中不要有日期类型的数据,否则会报400错误。如果想提交日期类型的数据需要用到后面的自定义参数绑定的内容。

2、   绑定包装POJO

页面

<input type="text" name="items.name" />

<input type="text" name="items.price" />

POJO

PublicclassQueryVo {

privateItemsitems;

 

}

3、   绑定数组

如一次性删除多条数据,前台传递多个id

jsp

<table width="100%" border=1>

<tr>

    <td>商品名称</td>

    <td>商品价格</td>

    <td>生产日期</td>

    <td>商品描述</td>

    <td>操作</td>

</tr>

<tr>

    <td><input name="ids" value="1" type="checkbox"></td>

    <td> </td>

    <td></td>

    <td></td>

    <td></td>

    <td>修改</td>

</tr>

<tr>

    <td><input name="ids" value="2" type="checkbox"></td>

    <td> </td>

    <td></td>

    <td></td>

    <td></td>

    <td>修改</td>

 

</tr>

<tr>

    <td><input name="ids" value="3" type="checkbox"></td>

    <td> </td>

    <td></td>

    <td></td>

    <td></td>

    <td>修改</td>

</tr>

</table>

ControllerController方法中可以用String[]接收,或者pojoString[]属性接收。两种方式任选其一即可

@RequestMapping("/queryitem")

         public String queryItem(QueryVo queryVo, String[] ids) {

                   System.out.println(queryVo.getItems().getName());

                   System.out.println(queryVo.getItems().getPrice());

                   System.out.println(ids.toString());

                   return null;

         }

 

 

 

        

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值