1 前后端联系
这个十分基础吧,前端是提交的表单,在action里指定访问的控制器域名。如下所示,在form标签指定了,userAdd的动作,提交方式为post。
<form action="/userAdd" method="post">
之后,在后台的控制层里,因为Spring Boot的一个好处就是通过注解就可以进行匹配,找到用户登录的代码块,使用@RequestMapping进行标记既可。
@ResponseBody
@RequestMapping("/userAdd")
这里看到@ResponseBody,很多人分不清楚。因为这注解可以很@controller进行融合成为@RestController,其实为了区分,尽量不要进行融合。这里做个解释如下:

2 获取前端参数的方式
2.1 HttpServletRequest方法
很古老的方法,简单来说就是通过调用request的getParameter方法来获取参数。不建议使用。如图:
2.2 参数对应法
若传入的数据量很小,就几个基础参数。可以在这里直接指定变量来接受既可,比如登录的时候,前端就提交了两个String变量的登录账户和登录密码,后台接受如下:
2.3 javabean接受法
这是后台很常用的接受方式,因为大多数系统后台是根据数据库表来建立了对应的实体类型(也就是常见的entity或POJO),而前端提交的数据几乎都与这些实体类里的成员相关。所以在进行数据操作时,很多后台都是直接接受对应的实体对象,然后在从接受的实体对象中取出对应的值。如下:
但是,使用这种办法必须值得提醒的是:前端页面里的数据名字必须和实体成员的名字一样!!!否则无法对应
比如:前端是name="userAcount"
登录账户:<input type="text" name="userAcount" /></br>
实体中的成员名字必须是: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)
然后默默取出值就行。
网友评论