一、@RequestParam
@RequestParam是SpringMVC中的一个常用注解,这个注解通常用在Controller层使用,标注在Controller层方法的参数上,用来解决前端与后端参数不一致的问题。@RequestParam将请求参数和控制器方法的形参创建映射关系。
@RequestParam注解一共有三个属性:
(1)value:指定为方法形参赋值的请求参数的参数名
(2)required:设置是否必须传输此请求参数,默认值为true
若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:Required String parameter 'xxx' is not present;
若设置为 false时,则当前请求不是必须传输value所指定的请求参数,若没有传输,则注解所标识的形参的值为 null
(3)defaultValue:为当前形参设置默认值,不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为 "" 时,则使用默认值为当前形参赋值
二、@Param
@Param是Mybatis中的一个常用注解,该注解标注在dao接口中的方法参数上,用来简化xml配置的时候(比如Mybatis的Mapper.xml中的sql参数注入),@Param注解的作用是给参数命名,参数命名后就可以通过 #{xxx} 的形式注入sql语句中(xxx为@Param给参数设置的名称)。@Param注解是为了dao接口的方法参数和配置文件sql语句的参数保持变量名的一致性。
举例:
dao接口中的方法:
public User selectUser(@Param("userName") String name,@Param("password") String pwd);
映射到xml中的<select>标签:
<select id="selectUser" resultMap="User">
select * from user where user_name = #{userName} and user_password=#{password}
</select>