@RequestParam
@RequestParam是Spring的注解,主要用于Controller层,用于处理前台参数名称与后端处理参数名称不一致的情况。有以下三个参数:
- value:后面跟前台的参数名称
- required:是否必须,有两个值true和false,true表示请求中必须有相应的参数,否则会报错
- defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。
@RequestMapping("/querUserById")
public String queryUserById(@RequestParam(value="uid",required=true) Integer id,Model model){
User user = userService.queryUserById(id);
model.addAttribute("user",user);
return "userview";
}
如代码中所示,前端参数名称为“uid”,后端处理参数名称为“id”
@Param
@Param是Mybatis的注解,常用于dao层,使mapper.xml中的参数名称和mapper中的对应,如代码中所示,在mapper.xml中参数名称为"uid",在mapper中参数名称为"id"。
UserMapper:
public interface UserMapper {
public User queryUserById(@Param("uid") Integer id);
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.UserMapper">
<select id="queryUserById" resultType="user" parameterType="integer">
select * from smbms.smbms_user
where id=#{uid}
</select>
</mapper>