springboot前后端数据交互

1 前后端联系

这个十分基础吧,前端是提交的表单,在action里指定访问的控制器域名。如下所示,在form标签指定了,userAdd的动作,提交方式为post。

之后,在后台的控制层里,因为Spring Boot的一个好处就是通过注解就可以进行匹配,找到用户登录的代码块,使用@RequestMapping进行标记既可。

    @ResponseBody
    @RequestMapping("/userAdd")

这里看到@ResponseBody,很多人分不清楚。因为这注解可以很@controller进行融合成为@RestController,其实为了区分,尽量不要进行融合。这里做个解释如下:
image.png

2 获取前端参数的方式

2.1 HttpServletRequest方法

很古老的方法,简单来说就是通过调用request的getParameter方法来获取参数。不建议使用。如图:
image.png

2.2 参数对应法

若传入的数据量很小,就几个基础参数。可以在这里直接指定变量来接受既可,比如登录的时候,前端就提交了两个String变量的登录账户和登录密码,后台接受如下:
image.png

2.3 javabean接受法

这是后台很常用的接受方式,因为大多数系统后台是根据数据库表来建立了对应的实体类型(也就是常见的entity或POJO),而前端提交的数据几乎都与这些实体类里的成员相关。所以在进行数据操作时,很多后台都是直接接受对应的实体对象,然后在从接受的实体对象中取出对应的值。如下:
image.png

但是,使用这种办法必须值得提醒的是:前端页面里的数据名字必须和实体成员的名字一样!!!否则无法对应
比如:前端是name="userAcount"

登录账户:

实体中的成员名字必须是:userAcount

public class User {

    private String userAcount;

2.4 混合型

当然,这种情况也非常多。因为后台操作会用到非常多的数据联表操作,可能从前端接受的不止是一个实体对象中的成员,可能有其他实体对象中的成员,也可能还有其余的基础成员。
这个时候,为了方便SQL数据的取出,就会创建一个新的POJO类来包含以上所有的实体成员,出现了一个大的POJO类里还有其余POJO类的情况。
比如以下,就是一个userAll类继承了User,此外还有一个UserLove(用户爱好)的POJO类

public class userAll extends User{`
    private UserLove userLove;

这个时候,前端传入的参数里既有User的成员信息,也有UserLove里的成员信息,我们不能在后台直接使用userAll来接受。

public String addUser(userAll userAll)//错误的方法

因为,后台接受不了UserLove里某个成员的信息,比如UserLove里有个loveSport成员,前端的传入loveSport的值为football,后台是接收不了这个loveSport的值。除非前端传入整个UserLove类,但是前端一般不会传入数据组的。

这个时候,还是老老实实的接受多个POJO类既可。如:

public String addUser(User user,UserLove userLove)

然后默默取出值就行。

你可能感兴趣的:(springboot前后端数据交互)