Следующий код с использованием 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
mobydick 28 Ноя 2011 в 17:04

1 ответ

У меня также были некоторые проблемы с Hunchentoot после обновления до версии 1.2.0. Если вы создаете экземпляр объекта класса acceptor, как я, вам может потребоваться изменить его, чтобы вместо этого использовать класс easy-acceptor.

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

Затем вы можете продолжать использовать create-prefix-dispatcher, как и раньше.

1
tuxedo 30 Ноя 2011 в 06:36