Jul 10, 2017 10:38:44 AM
作者:
几句话的介绍
Nutz.Mvc 是要和一个 Web 服务器 (比如 Tomcat)一起工作的,它存在的意义就是要把一个标准的 HTTP 请求,转发到某一个 Java 函数中。
- 帮你做参数的解析 (当然你自己可以随意扩展)
- 如果你愿意,你可以不用 View 来渲染 HTTP 输出流
- 提供几个基本的渲染方式 (比如 JSP, JSON)
- 除此以外,不内置更多的功能
每一种 HTTP 请求,标识就是一个 URL,而每一个 Java 函数怎样和一个 URL 关联呢? 最直接的办法就是在函数上声明一个注解,这个注解,在 Nutz.Mvc 中,叫
你如果想快速开始,来一个 Hellow World, 那么请看 Hello World 一节
图解 Nutz.Mvc
为了能让你更快速直观的了解 Nutz.Mvc 的工作方式,我提供下面两张图:
- 并且,@At 支持你写多个路径
更详细的流程
- 声明了 @At 的函数被称为 入口函数
- 任何一个请求,都会经过四道工序
- A - 过滤: 你通过 @Filters 注解可以为你的入口函数定义任意多的过滤器
- B - 适配: 这个过程将 HTTP 输入流转换成入口函数的参数数组
- 默认的,它认为输入流是传统的名值对方式
- 更多的适配方式请参看
- 文件上传也是一种适配方式,请参看 UploadAdptor
- D - 渲染: 根据入口函数的返回,渲染 HTTP Response。
- 如果返回是个 View,则用这个 View 来渲染 null (null? 是的,你没看错,这种情况 View 接口第三个参数会是 null)
- 你可以用 org.nutz.mvc.view.ViewWrapper 将你的返回对象以及要返回的视图组合在一起返回,ViewWrapper 也是一个 View
- 否则用函数的 @Ok 注解声明的 View 来渲染入口函数的返回对象
- 如果你的函数处理过程中抛出了异常,用 注解声明的 View 来渲染异常对象
- 返回值会保存在request的attr中,名字是obj
- 如果返回是个 View,则用这个 View 来渲染 null (null? 是的,你没看错,这种情况 View 接口第三个参数会是 null)
进阶阅读
本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和下修改和再使用。