簡單數(shù)據(jù)類型
對于簡單數(shù)據(jù)類型,如:Integer湿颅、String暑竟、Float等使用Model將傳入的參數(shù)再放到request域?qū)崿F(xiàn)顯示。
如下:
@RequestMapping(value="/editItems",method={RequestMethod.GET})
public String editItems(Model model,Integer id)throws Exception{
//傳入的id重新放到request域
model.addAttribute("id", id);```
pojo類型
springmvc默認支持pojo數(shù)據(jù)回顯悠垛,springmvc自動將形參中的pojo重新放回request域中,request的key為pojo的類名(首字母小寫)娜谊,如下:
controller方法:
//商品信息修改提交
//在需要校驗的pojo前加@Validated确买,在其后加BindingResult bindingResult接收校驗錯誤信息,他們是配對出現(xiàn)的
//指定使用分組校驗value={ValidGroup1.class}
//@ModelAttribute("items")指定pojo回顯到頁面的request的key
@RequestMapping("/editItemsSubmit")
public String editItemsSubmit(Model model,HttpServletRequest request,Integer id,@ModelAttribute("items")
@Validated(value={ValidGroup1.class}) ItemsCustom itemsCustom,BindingResult bindingResult,
MultipartFile items_pic) throws Exception{```
jsp頁面:
<c:forEach items="${itemsList }" var="item" varStatus="status">
<tr>
<td><input name="itemsList[${status.index }].name" value="${item.name }"></td>
<td><input name="itemsList[${status.index }].price" value="${item.price }"></td>
<td><input name="itemsList[${status.index }].createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"></td>
<td><input name="itemsList[${status.index }].detail" value="${item.detail }"></td>
</tr>
</c:forEach>```
如果key不是pojo的類名(首字母小寫)纱皆,可以使用@ModelAttribute完成數(shù)據(jù)回顯湾趾。
@ModelAttribute作用如下:
1、綁定請求參數(shù)到pojo并且暴露為模型數(shù)據(jù)傳到視圖頁面
此方法可實現(xiàn)數(shù)據(jù)回顯效果派草。
// 商品修改提交
@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)完成數(shù)據(jù)回顯搀缠。
2、將方法返回值暴露為模型數(shù)據(jù)傳到視圖頁面
//商品分類
@ModelAttribute("itemtypes")
public Map<String, String> getItemTypes(){
Map<String, String> itemTypes = new HashMap<String,String>();
itemTypes.put("101", "數(shù)碼");
itemTypes.put("102", "母嬰");
return itemTypes;
}```
頁面:
商品類型:
<select name="itemtype">
<c:forEach items="${itemtypes }" var="itemtype">
<option value="${itemtype.key }">${itemtype.value }</option>
</c:forEach>
</select>```