springmvc注解开发-高级之数据回显

1      数据回显

1.1      什么数据回显

提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。

 

1.2      pojo数据回显方法

 

1、springmvc默认对pojo数据进行回显。

pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写)

 

使用@ModelAttribute指定pojo回显到页面在request中的key

 

2、@ModelAttribute还可以将方法的返回值传到页面

 

1.1.1 简单数据类型

对于简单数据类型,如:Integer、String、Float等使用Model将传入的参数再放到request域实现显示。

如下:

   @RequestMapping(value="/editItems",method={RequestMethod.GET})

    public String editItems(Model model,Integer id)throws Exception{

      

       //传入的id重新放到request

       model.addAttribute("id", id);

 

 

1.1.2  pojo类型

springmvc默认支持pojo数据回显,springmvc自动将形参中的pojo重新放回request域中,request的key为pojo的类名(首字母小写),如下:

 

controller方法:

    @RequestMapping("/editItemSubmit")

    public String editItemSubmit(Integer id,ItemsCustom itemsCustom)throws Exception{

springmvc自动将itemsCustom放回request,相当于调用下边的代码:

model.addAttribute("itemsCustom", itemsCustom);

 

jsp页面:

页面中的从“itemsCustom”中取数据。

 

如果key不是pojo的类名(首字母小写),可以使用@ModelAttribute完成数据回显。

@ModelAttribute作用如下:

1、绑定请求参数到pojo并且暴露为模型数据传到视图页面

此方法可实现数据回显效果。

 

// 商品修改提交

    @RequestMapping("/editItemSubmit")

    public String editItemSubmit(Model model,@ModelAttribute("item") ItemsCustomitemsCustom)

   

页面:

<tr>

    <td>商品名称</td>

    <td><input type="text"name="name" value="${item.name }"/></td>

</tr>

<tr>

    <td>商品价格</td>

    <td><input type="text"name="price" value="${item.price }"/></td>

</tr>

 

如果不用@ModelAttribute也可以使用model.addAttribute("item", itemsCustom)完成数据回显。

 

 

2、将方法返回值暴露为模型数据传到视图页面

 

//商品分类

    @ModelAttribute("itemtypes")

    public Map<String, String> getItemTypes(){

      

       Map<String, String> itemTypes = newHashMap<String,String>();

       itemTypes.put("101", "数码");

       itemTypes.put("102", "母婴");

      

       return itemTypes;

    }

 

页面:

商品类型:

<select name="itemtype">

    <c:forEach items="${itemtypes }"var="itemtype">

       <option value="${itemtype.key }">${itemtype.value }</option>      

    </c:forEach>

</select>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值