5月12日

今天在做项目的过程中,学习到了一些mybatis的内容,

bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如:

  1. <select id="selectBlogsLike" resultType="Blog">
  2. <bind name="pattern" value="'%' + _parameter.getTitle() + '%'" />
  3. SELECT * FROM BLOG
  4. WHERE title LIKE #{pattern}
 
</select>
 
 
 
同时一点点的学springboot

@RequestParam是传递参数的.

@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。

 

 

 

@RequestParam注解主要参数

value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据

required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。

 

学习

@RequestParam接收对象类型

例子

实体类是People属性如下

private String name; //姓名
private int age; //年龄
private String sex;  //性别

前台代码(拿JSP举例)

<input type="text" value="黑黑" name="name">
<input type="text" value="18"  name="age">
<input type="text" value="男"  name="sex"> 

后台代码

int addPeople(@RequestParam People people) {}
//这时候使用@RequestParam注解修饰参数 只要前台传的参数名称和people类中的属性名一致就可以自动封装进People实体类

加和不加@RequestParam参数有什么区别呢?

其实不加@RequestParam参数也没问题(此时的参数名称要和前台传过来的参数名称保持一致),也可以接收到前台传过来的参数,当前台没有传值时接收到的为null,只不过使用@RequestParam是为了用它里面的一些属性,比如默认值或required属性。

总结

  1. Post请求接收@RequestBody修饰的参数和@RequestParam修饰的参数,而Get请求则只能接收@RequestParam修饰的参数。
  2. 如果前端传的是Json类型的对象,后台就要使用@RequestBody修饰的实体类接收,如果是单个属性就使用@RequestParam修饰的变量或实体类接收
posted @ 2022-05-12 22:01  不咬牙  阅读(28)  评论(0编辑  收藏  举报