编写代码时候很容易遗漏注解,尤其比较重要的注解,调试很久也找不到原因,在处理页面请求异常时,如果后台正常,就是发现没有把想要的对象传到页面就注意下看注解是否缺失?例如:
/**
* @Author gj
* @CreateTime 2018/1/25
* @Version 0.0.1
* @Description 控制器
*/
@Controller//控制层
@Scope("prototype")//模式,与页面请求模式对应,代理、多例
@RequestMapping("/boss/teach/examChapter")//见下文
public class ExamChapterController extends BaseController {
@Autowired
private IExamChapterService iExamChapterService; /**
* @Author gj
* 方法说明:保存
* @Param: ksglExamChapter
* @Retrun: JSONResult
*/
@RequestMapping("/saveExamChapter")
@ResponseBody
public JSONResult saveExamChapter(KSGLExamChapter ksglExamChapter) {
ksglExamChapter.setUuid(IDGenerator.uuid());//主键
iExamChapterService.saveExamChapter(ksglExamChapter);
return new JSONResult(GlobleConstant.CODE_SUCCESS, "保存成功");//在完成后发生页面跳转
}
/**
* @Author gj
* 方法说明:保存
* @Param: ksglExamChapter
* @Retrun: JSONResult
*/
@RequestMapping("/save")
@ResponseBody
public JSONResult saveExamChapter(@RequestBody KSGLExamChapter ksglExamChapter) {// 将请求中的数据data 写入KSGLExamChapter对象中,属性自动匹配
ksglExamChapter.setUuid(IDGenerator.uuid());
iExamChapterService.saveExamChapter(ksglExamChapter);
return new JSONResult(GlobleConstant.CODE_SUCCESS, "保存成功"); //在完成后发生页面跳转,不会被解析为跳转路径,而是直接JSONResult对象写入HTTP页面响应中
}
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上,简单理解就是页面请求的url路径对应。
- @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用;
- 在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。
- @RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。