[cl-who-devel] empty web page

Hi. When I try to open a web page generated by cl-who I get an empty web page: ------------------------------------------------------------ (start (make-instance 'acceptor :port 8000)) (push (create-prefix-dispatcher "/index.html" 'index) *dispatch-table*) (defun index () (with-html-output (*standard-output* nil :indent t) (:html (:head (:title "Test page")) (:body (dotimes (x 10) (:htm (:p "Text")))))) ----------------------------------------------------------- and page on http://localhost:8000/index.html is empty. The source of the page is just: ---------------- </body> </html> -------------- Where is the problem ? If I remove dynamic code "(dotimes (x 10) ..." then it renders the page correctly. Thanks

A standard Hunchentoot handler must return its output as a string and not send it to *standard-output*. Edi. 2010/5/31 a <fbogdanovic@xnet.hr>:
Hi.
When I try to open a web page generated by cl-who I get an empty web page:
------------------------------------------------------------ (start (make-instance 'acceptor :port 8000))
(push (create-prefix-dispatcher "/index.html" 'index) *dispatch-table*)
(defun index () (with-html-output (*standard-output* nil :indent t) (:html (:head (:title "Test page")) (:body (dotimes (x 10) (:htm (:p "Text")))))) ----------------------------------------------------------- and page on http://localhost:8000/index.html is empty. The source of the page is just: ---------------- </body> </html> --------------
Where is the problem ? If I remove dynamic code "(dotimes (x 10) ..." then it renders the page correctly.
Thanks _______________________________________________ cl-who-devel site list cl-who-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-who-devel

Quoth Edi Weitz <edi@agharta.de>:
A standard Hunchentoot handler must return its output as a string and not send it to *standard-output*.
This should make things a little clearer: ;;; define *http-stream* as a special variable ;;; (so that it can be used anywhere, not just in function 'index') (defvar *http-stream* nil) (defun reapeat-para (stream body n) (with-html-output (stream) (dotimes (i n) (:htm (:p (str body)))))) (defun index () (with-html-output-to-string (*http-stream* nil :indent t) (:html (:head (:title "The first dissenter")) (:body (repeat-para *http-stream* "Romans go home" 100))))) Untested, but it should help. Seb -- Emacs' AlsaPlayer - Music Without Jolts Lightweight, full-featured and mindful of your idyllic happiness. http://home.gna.org/eap
participants (3)
-
a
-
Edi Weitz
-
Sebastian Tennant