这两天在看一个老项目,用的SpringMVC+JSP。因为很久没看SpringMVC,在看一个Controller的时候竟然看不懂了哈哈哈哈~
Controller:
@Controller
@RequestMapping("example")
@FunctionId("F001")
public class ExampleController {@Autowiredprivate ExampleService exampleService;@RequestMapping(method = RequestMethod.GET)public String showPage() {return "default";}@ModelAttribute("ui")public UiObject ui(HttpServletRequest request, HttpSession session) throws ServletRequestBindingException {return new UiObject();}@ModelAttributepublic void referenceData(HttpServletRequest request, Model model) {model.addAttribute("attribute", exampleService.getAttribute("KEY"));}
}
看不懂的是referenceData这个接口,因为他没有映射路径。
后面查了一下才知道他不是一个接口,而是一个前置方法!
也就是当你请求这个Controller任意一个接口,如这里的showPage/ui的时候,会先调用这个referenceData去给Model填充数据,然后再走对应接口的流程。神奇!

