当我尝试编译文档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
这些渲染对象的东西如何工作?
答案 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模块。