博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC 数据回显
阅读量:5981 次
发布时间:2019-06-20

本文共 2719 字,大约阅读时间需要 9 分钟。

springmvc 的数据回显

原创 2015年08月02日 11:39:00
 

1        数据回显

1.1    什么数据回显

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

即表单提交失败不需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示。

1.2    pojo数据回显方法

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

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

  修改信息editItems()方法中的标识是   model.addAttribute("itemsCustom",itemsCustom);

       editItems.jsp页面接收的标识为  <input type="hidden"name="id" value="${

itemsCustom.id}"/>

       提交修改的方法    public String editItemsSubmit(Modelmodel,HttpServletRequest request,Integer id,@Validated(value={ValidGrouop1.class})  ItemsCustom itemsCustom,BindingResult bindingResult)throws Exception

 

        三者一致方可自动回显

 

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

 

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

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

 

@ModelAttribute("item") 中的item 对应ItemsCustom itemsCustom 的itemsCustom 为itemsCustom的别名,用于保持和页面的"${

item.name }" 中的item 一致实现数据回显

 

// 商品修改提交

   @RequestMapping("/editItemSubmit")

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

  

页面:

<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还可以将方法的返回值传到页面

 

在商品查询列表页面,通过商品类型查询商品信息。

在controller中定义商品类型查询方法,最终将商品类型传到页面。

   //商品分类

   //itemTypes表示最终将方法的返回值放在request中的key

      @ModelAttribute("itemtypes")

     

      public Map<String, String>getItemTypes(){

       

        Map<String,String> itemTypes = new HashMap<String,String>();

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

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

       

        return itemTypes;

      }

 

 

页面上可以得到itemTypes数据。

商品分类:

<select name="itemtype">

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

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

   </c:forEach>

</select>

 

 

3、使用最简单方法使用model,可以不用@ModelAttribute

 

@RequestMapping("/editItemsSubmit")

      public StringeditItemsSubmit(Model model

           ,HttpServletRequest request,

           Integerid,

           @ModelAttribute("items")@Validated(value={ValidGrouop1.class})  ItemsCustom itemsCustom,

           BindingResultbindingResult)throwsException{

        //获取验证错误信息

        if(bindingResult.hasErrors())

        {

           //输出错误信息

           List<ObjectError>allerrors=bindingResult.getAllErrors();

           for(ObjectError error:allerrors)

           {

              System.out.println(error.getDefaultMessage());

           }

           //错误信息传递到页面

           model.addAttribute("allErrors",allerrors);

           //使用model 的方式使数据回显

           model.addAttribute("items",itemsCustom);

           return "items/editItems";

        }

        //调用service更新商品信息,页面需要将商品信息传到此方法

        itemsService.updateItems(id,itemsCustom);

        //重定向  不用加跟路径

        //return "redirect:queryItems.action";

        //页面转发

        return "forward:queryItems.action";

      }

1.3    简单类型数据回显

使用最简单方法使用model。

model.addAttribute("id", id);

 

 

 

仅供自己查阅参考使用,如有冒犯请留言联系

转载自: https://blog.csdn.net/u012373815/article/details/47205657

转载于:https://www.cnblogs.com/webyyq/p/8676269.html

你可能感兴趣的文章
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
miniWindbg 功能
查看>>
CF772E Verifying Kingdom
查看>>
第二次冲刺 第七天
查看>>
测试驱动开发
查看>>
【Udacity】线性回归方程 Regression
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
Windows Phone 8 开发资源汇总
查看>>
Git:配置
查看>>
神经系统知识普及
查看>>
Spring可扩展Schema标签
查看>>
c++ STL unique , unique_copy函数
查看>>
http://miicaa.yopwork.com/help/overall/
查看>>
浅谈关于特征选择算法与Relief的实现
查看>>
mybatis-spring 项目简介
查看>>
Wireshark抓取RTP包,还原语音
查看>>
Behavioral模式之Memento模式
查看>>
Work Management Service application in SharePoint 2016
查看>>