@FormModel 用于将前端 FORM 数据绑定到一个或多个对象
比如:
<form>
<input name="student.name" value="Kate" />
<input name="student.type" value="自费" />
<input name="teacher.name" value="Gavin" />
<input name="teacher.level" value="2" />
</form>
对应的 Controller 中
@RequestMapping(value = "/url", method=RequestMethod.POST)
@ResponseBody
public Object add(@FormModel("student") Student student, @FormModel("teacher") Teacher teacher) {
}
页面视图
视图可以是 JSP / Freemarker / Velocity, 所以需要指明视图的后缀来确定实际使用的模板类型
@RequestMapping(method=RequestMethod.GET)
public Object page() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("sys/user/list.ftl");
//modelAndView.setViewName("sys/user/list.jsp");
//modelAndView.setViewName("sys/user/list.vm");
return modelAndView;
}
JSON 视图
开发框架对后端返回的 JSON 格式做了约定
{
"result": 0, // 1 表示成功, 0: 表示失败
"message": "" // 失败时的提示消息, 成功时可以忽略
// 其它 key : value
}
后台给这个约定的结构提供了一个组装工具 com.qhiot.core.mvc.response.AjaxResponse
@RequestMapping(value = "/jsondata", method=RequestMethod.GET)
@ResponseBody
public Object jsonData(HttpServletRequest request) {
try {
User user = ... ;
return AjaxResponse.success() //成功
.put("user", user); // 压入其它数据
} catch (ServiceException e) {
LOGGER.error(e.getMessage(), e);
return AjaxResponse.fail(e); // 失败, 失败消息自动从 Throwable 中提取
}
}
Excel 视图(导出 Excel)
Excel 导出使用的 Jxls v2, 下面是一个导出的示例:
@RequestMapping(value = "/excel")
public Object exportExcel(HttpServletRequest request) {
ModelAndView model = new ModelAndView();
model.setViewName("sys/user/user.xlsx"); // Jxls excel 模板文件
try {
User user = ... ;
model.addObject("user", user); // 压入模板中需要用到的对象或属性
model.addObject(ExcelExportView.EXPORT_FILENAME, "用户"); //指定导出的文件名
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return model;
}
参阅 校验工具