springmvc通过注解绑定参数时,最好指定具体参数名称(如:@PathVariable("id")),因为在在非debug模式下编译后,运行时会引发异常。
@PathVariable : 获取路径中的参数:url="/product/delete/{id}" , 则@PathVariable("id")String id 可以获取url中的id参数,
@RequestParam :获取form表单中的参数: @RequestParam(value="name",required=false) String name 可以获取页面form表单对应名称的参数,
注:@RequestParam中的参数默认是必须的(required=true) , 如果没有参数传进来,则会报错,此时可设置成不是必须的:required=false
@ModelAttribute : 获取form表单的参数:@ModelAttribute("product") Product product,BindingResult result
注:1、@ModelAttribute("product") 默认情况下是null,会引发异常,在进入页面之前就指定,
相当于进行初始化@ModelAttribute("product"),那么在表单提交后获取该对象的时候就不会引发异常了
2、在页面form表单中需指定commandName,及modelAttribute
<form:form action="product/save.do" method="post" commandName="productForm" modelAttribute="product">