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 支持你写多个路径

更详细的流程

Nutz.Mvc 概述 - 图2

  • 声明了 @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

进阶阅读

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和下修改和再使用。