SpringMVC 数据绑定
我们先来了解一下SpringMVC怎么实现数据的绑定。
套餐一:普通访问 ,不带参数
需要注解:@RequestMapping
@RequestMapping:访问路径,如果只有value参数可以省略value
@RequestMapping(value = "demo")
public String demo() {
return "success";
}
需要注解:@RequestMapping和@ResponseBody还有@PathVariable
@ResponseBody:添加该注解后使返回值返回到页面
@PathVariable:绑定URI 模板变量值通过占位符获得请求参数
@RequestMapping(value = "finish/{id}", method = RequestMethod.POST)
@ResponseBody
public String finish(@PathVariable("id") Long id) {
Transfer transfer = transferService.findOne(Transfer.class, id);
transfer.setIsDone(1);
transfer.setTransferTime(new Date());
transferService.save(transfer);
return "true";
}
需要注解:@RequestMapping和@Valid
@Valid:数据校验和实例化javabean
@RequestMapping(value = "create", method = RequestMethod.POST)
public String create(@Valid Campaign newCampaign) {
String strToday = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
newCampaign.setShowDate(strToday);
campaignService.save(newCampaign);
return "redirect:/campaign/";
}
删除就不需要@Valid,因为删除只需要一个id
@RequestMapping({"delete/{id}"})
public String delete(@PathVariable("id") Long id){
actionService.deleteById(UserAction.class, id);
return "redirect:/campaign/";
}
更新还需要一个@ModelAttribute: 绑定参数到命令对象@RequestMapping(value = "update", method = RequestMethod.POST)
public String update(@Valid @ModelAttribute("entity") UserAction useraction) {
actionService.save(useraction);
return "redirect:/useraction/";
}
1、@RequestParam绑定单个请求参数值
2、@PathVariable绑定URI 模板变量值
3、@CookieValue绑定Cookie 数据值
4、@RequestHeader绑定请求头数据
5、@ModelAttribute绑定参数到命令对象
6、@SessionAttributes绑定命令对象到session
@RequestParam:
@RequestMapping(value = "create", method = RequestMethod.POST)
@ResponseBody
public String createImpression(
@RequestParam(value = "campaignId", required = true) long campaignId,
@RequestParam(value = "clickId", required = true) String clickId) {
createUserAction(campaignId, clickId);
return "";
}
@CookieValue:
@RequestMapping(value="cookie")
public void cookieValue(@CookieValue(value="JSESSIONID") String sessionId
,WebRequest wr,HttpSession session){
System.out.println(sessionId);
System.out.println(wr.getSessionId());
System.out.println(session.getId());
}
@RequestHeader:
@RequestMapping(value="header")
public void headerValue(@RequestHeader(value="Accept") String accept,
@RequestHeader("User-Agent") String userAgent,
@RequestHeader("Hello") String hello){
System.out.println("accept : "+accept);
System.out.println("userAgent : "+userAgent);
System.out.println("hello : "+hello);
}
@SessionAttributes:
@SessionAttributes(value="sessionAttr")
public class DataBindingFromAnn {
@RequestMapping(value="session")
public String sessionAttr (Model model) {
UserModel userModel = new UserModel();
userModel.setName("ITDragon");
userModel.setPassword("abcdefg");
model.addAttribute("sessionAttr", userModel);
return "sessionAttr";
}
}
以上便是数据绑定的常用注解以及使用方法,有什么问题和建议可以留言,我会及时更正。