什么是restas渲染对象?

时间:2015-04-17 06:49:03

标签: web lisp hunchentoot

当我尝试编译文档http://restas.lisper.ru/en/manual/special-pages.html中显示的render-object方法时,

(defmethod restas:render-object ((designer mydrawer)
                                 (code (eql hunchentoot:+http-internal-server-error+)))
  (setf (hunchentoot:content-type*) "text/plain")
  "Oh, all very bad")

它给出了

There is no class named RESTAURANT::MYDRAWER SIMPLE-ERROR

这些渲染对象的东西如何工作?

1 个答案:

答案 0 :(得分:0)

render-object是一个泛型函数,它接受一个渲染对象,该对象是传递给:render-method的{​​{1}}或define-route的值的对象,以及要渲染的对象。然后它呈现该对象(通常作为文本,尽管您可能也可以将其呈现为八位字节数组)。

该示例假定您有一个名为mydrawer的类。要使其正常工作,您需要执行以下操作:

*default-render-method*

然后使用(defclass mydrawer () ()) (defmethod restas:render-object ((designer mydrawer) (code (eql hunchentoot:+http-internal-server-error+))) (setf (hunchentoot:content-type*) "text/plain") "Oh, all very bad") (defmethod restas:render-object ((designer mydrawer) obj) ;; Default rendering of objects goes here, ;; this will just call the default render method (restas:render-object nil obj)) 的实例作为渲染方法,用于单个路由或restas模块。