动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

简述4种Spring MVC数据回显方法

08-31 17:47 121浏览
举报 T字号
  • 大字
  • 中字
  • 小字

数据回显就是在页面提交请求后,如果出现错误,则将刚才提交的数据回显到刚才的提交页面。在页面上数据回显本质上就是获取reqeust域的值,而在Spring MVC中,我们是使用Model来把数据绑定request域对象中的,所以,一般地我们都是使用model.addAttribute()的方式把数据绑定到request域对象中...其实Spring MVC数据回显方法还支持注解的方式。

    下面为大家介绍4种Spring MVC数据回显方法:

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

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

<tr>

<td>商品价格</td>

<td><input type="text" name="price" value="$<span style="background-color: rgb(255, 255, 102);">{itemsCustom</span>.price }"/></td>

</tr>

页面中的取值key为itemsCustom,要和 controller方法形参中的参数名称一致,这样springmvc就会自动的进行数据的回显

@RequestMapping("/editItemsSubmit")

public String editItemsSubmit(Model model,HttpServletRequest request,Integer id,String name,

@Validated(value={ValidGroup1.class}) ItemsCustom itemsCustom,BindingResult bindingResult) throws Exception{}

2.使用@ModelAttribute("items"):可以指定pojo回显到页面在request域中的key

//@ModelAttribute("items"):可以指定pojo回显到页面在request域中的key

@RequestMapping("/editItemsSubmit")

public String editItemsSubmit(Model model,HttpServletRequest request,Integer id,String name,

@ModelAttribute("items") @Validated(value={ValidGroup1.class}) ItemsCustom itemsCustom,BindingResult bindingResult) throws Exception{}

页面中获取参数的key就是@ModelAttribute中定义的key

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

<tr>

<td>商品名称</td>

<td><input type="text" name="name" value="${<span style="background-color: rgb(255, 255, 102);">items</span>.name }"/></td>

</tr>

<tr>

<td>商品价格</td>

<td><input type="text" name="price" value="${<span style="background-color: rgb(255, 255, 102);">items</span>.price }"/></td>

</tr>

<tr>

<td>商品生产日期</td>

<td><input type="text" name="createtime" value="<fmt:formatDate value="${<span style="background-color: rgb(255, 255, 102);">items</span>.createtime }" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td>

</tr>

</table>


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

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

 

//商品分类

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

@ModelAttribute("itemtypes")

public Map getItemTypes(){

Map itemTypes = new HashMap();

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

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

return itemTypes;

}

在页面上可以得到itemsTypes数据

<td>

商品类型:

<select name="itemtype">

<c:forEach items="${<span style="background-color: rgb(255, 255, 102);">itemtypes</span> }" var="itemtype">

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

</c:forEach>

</select>

</td>

4.最简单的数据回显的方式:使用model

@RequestMapping("/editItemsSubmit")

public String editItemsSubmit(Model model,HttpServletRequest request,Integer id,String name,

@ModelAttribute("items") @Validated(value={ValidGroup1.class}) ItemsCustom itemsCustom,BindingResult bindingResult) throws Exception{

 

//获取校验错误信息

if(bindingResult.hasErrors()){//如果有错误

//输出错误信息

List allErrors = bindingResult.getAllErrors();

for (ObjectError objectError : allErrors) {

//输出错误信息

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

}

//将错误信息传到页面

model.addAttribute("allErrors", allErrors);

//可以直接使用model将提交的pojo回显到页面

model.addAttribute("itemsCustom",itemsCustom);

 

//出错后重新回到商品的修改页面

return "items/editItems";

}

 

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

itemsService.updateItems(id, itemsCustom);

 

//重定向到商品的查询列表

return "redirect:queryItems.action";

}

在页面上通过 ${itemsCustom.***}接收参数

以上介绍4种Spring MVC数据回显方法你对Spring MVC数据回显方法有了一定的事实上Spring MVC数据回显技术就是回溯了可能被网页“吞掉”的数据,大大提高了数据利用率的同时减少了用户重新输入数据的时间。基本上数据回显技术在一些大型网站中都会有运用,前端开发中经常会用到的技术。想要深入了解这门技术的小伙伴可以去看本站的Spring MVC视频教程中的实例运用,学习起来更加容易掌握这门技术。

0人推荐
共同学习,写下你的评论
0条评论
天鹏桑
程序员天鹏桑

12篇文章贡献57547字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消