使用Hunchentoot / html-template / Lisp提供动态网页

时间:2011-11-28 13:04:46

标签: lisp web-applications hunchentoot

使用Hunchentoot和html-template的以下代码允许我提供动态网页,直到最近我将Hunchentoot升级到最新版本。有人可以建议我在下面的代码出错吗?我假设问题出在宏定义中?

(defmacro define-url-fn ((name) &body body)
  `(progn
     (defun ,name ()
       ,@body)
     (push (create-prefix-dispatcher ,(format nil "/~(~a~).html" name) ',name) *dispatch-table*)))

(define-url-fn (sign-up)
  (with-output-to-string (stream)
    (let* ((values (list :username-error-msg *register-error*)))
      (fill-and-print-template #p"/ELEPHUND/INTERFACE/sign-up.tmpl" values :stream stream))))

1 个答案:

答案 0 :(得分:0)

升级到1.2.0后,我在使用Hunchentoot时遇到了一些麻烦。如果您像我一样实例化类接受器的对象,则可能需要将其更改为使用类easy-acceptor。

(push (make-instance 'easy-acceptor) *acceptors*)

然后您可以像以前一样继续使用create-prefix-dispatcher