1. @RestController和@Controller的区别
- @RestController相当于@Controller+@RestBody
1.@RestController的返回值是不会跳转一个页面,它会去返回String、Object、json等实体对象。
2.@Controller则会返回跳转页面,当它加上@RestBody则效果会跟@RestController一样。
2.应用场景
- 因此我们一般在不分离项目中,我们后端的方法作为一个中转去指向一个页面时,我们会使用@Controller,当后端方法作为接收前端值操作数据库,例如:存储数据或查询数据后返回到前端时,我们则使用@Controller+@RestBody。
- @RestController我们常见于前后端分离的项目中,或整个控制层无需中转跳转页面。
@Controller
@RequestMapping("/common")
public class CommonController extends BaseController{
private String prefix = "common";
@Autowired
private ICommonService commonService;
@GetMapping("/add")
public String add(String archivetype, ModelMap mmap)
{
mmap.put("archivetype",archivetype);
return prefix + "/add";
}
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(HttpServletRequest request, HttpServletResponse response)
{
Map<String,String[]> map=request.getParameterMap();
return toAjax(commonService.insert(map));
}
}