控制器层
需求分析:
访问路径:`/user/reg.do` //自己根据功能需求设定的
请求参数:`username=xx&password=xx&&phone=xx&email=xx` //根据注册页面的输入框设定
请求类型:`POST`
响应内容:`JSON` //响应的json字符串 八月27日,15:00
在`pom.xml`中添加对`Jackson`的依赖:
<!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version> </dependency>
创建专门用于响应给客户端的JSON数据的类`cn.tedu.store.entity.ResponseResult`
public class ResponseResult<T> { private Integer state; // 成功(1)或失败(0) private String message; // 仅当失败时封装错误信息 private T data; // 数据 如果类中使用了泛型,则类的声明也要用泛型。 // 其它标准做法 }
泛型的使用场景:一般是绑定某种数据类型如果不是则报错,另外当某个类型,若并不确定时候就可以用泛型,如上所示。
//学习方法:先看书,有问题,针对问题,看别人写的博客,再有问题可以针对性地看某些优秀的视频。
创建控制器类`cn.tedu.store.controller.UserController`,使用`@Controller`注解,并添加`@RequestMapping("/user")`注解。
在这个类中添加`public ResponseResult<Void> handleReg()`方法以处理请求,该方法使用`@RequestMapping(value="/reg.do", method=RequestMethod.POST)`注解,并添加`@ResponseBody`注解。
说明:ResponseResult<Void>是返回来响应内容,其中value="/reg.do" 路径, method=RequestMethod.POST请求方式,这是post请
求的写法,不能用get请求的写法。
用`@RequestMapping("/reg.do")`注解,既能接受post请求,也能接受post请求的一种写法。
其中,@ResponseBody这个注解,如果响应方式既不是转发也不是重定向,那么就要用这个注解,它表示响应并给客户端的是某些具体数据内容,而不是某个页面,那么它就不会走视图解析器(spring-mvc.xml中配置的)过。
一般转发或重定向返回类型是String类型的。
不管返回类型是什么,不关心且无意义的,则用Void类型,这种类不可以有子类,用final修饰的,看源码。
说明:检查`spring-mvc.xml`的配置是否正确,它是用来扫描控制器的。