Регистрация | Войти
Lisp — программируемый язык программирования
RSS
Помощь по моему hello world
babah-yu - 19.04.2015 14:33, Сообщений - 4
Здравствуйте, вот такой код
(push :HUNCHENTOOT-NO-SSL *features*)
(mapcar #'ql:quickload '(:restas :cl-who))

(restas:define-module :local-web
    (:use :cl :cl-who))
(in-package :local-web)
(restas:define-route main ("")
  (cl-who:with-html-output
      (*standard-output* nil :indent t :prologue t)
    (:html
     (:head
      (:meta :charset "utf-8")
      (:title "Страница 1"))
     (:body
      (:form   :metod :get :action "page2"
       ;;(:input :type "file" :name "file" ) (:br)
       (:input :type "text" :name "text1" :value "some text")(:br)(:br)
       (:input :class "batton" :type "submit" :value "Send"))   
      ))))
(restas:define-route page2 ("/page2")
     (cl-who:with-html-output
      (*standard-output* nil :indent t :prologue t)
    (:html
     (:head
      (:meta :charset "utf-8")
           (:title "Страница 2"))
     (:body
        (:p (fmt "test message: ~A" (hunchentoot:get-parameter "text1")))))))

(restas:start ':local-web :port 8000)

Не могу отобразить на "Страница 2" содержимое запроса формы "Страница 1",
браузер видит :
     </p>
  </body>
</html>,
в консоли REPL вижу как вычисляется моя форма странички, вроде нормально
[#]
Раз уж добрался до веба, вдруг кому пригодится.
Так работает:

(restas:define-route page2 ("/page2" :method :get)
  (cl-who:with-html-output-to-string
      (str nil :indent t :prologue nil)
    (:html
     (:head
      (:meta :charset "utf-8")
      (:title "Страница 2")
)

     (:body
       (:p (fmt "test message ~A" (hunchentoot:get-parameter "text1")))
)
)
)
)

если посмотреть macroexpand'ом на cl-who:with-html-output из примера выше и на cl-who:with-html-output-to-string, то видно, что без обёртки ...-to-string полученный код пишет в stdout в три захода (часть до fmt, вызов fmt и закрывающие теги). Клиенту прилетает последняя часть. Обёртка со строкой сначала собирает выхлоп этого макроса в один string-output-stream и полученный целый HTML отправляет клиенту. Вывод - лучше пользоваться макрой ...-output-to-string из cl-who, что и делается во всех примерах.
EO - 20.05.2015 01:01
[#] Ответ на комментарий от EO 20.05.2015 01:01
Хотел отписаться что проблема решена, а тут уже и ответ )) Но спасибо, он более подробный чем меня бы удовлетворил, действительно кому-то может пригодиться.
babah-yu - 06.06.2015 13:42
[#] Ответ на комментарий от babah-yu 06.06.2015 13:42
Здравствуйте еще раз, может мне кто-нибудь подсказать как получить acceptor в Restas ?
babah-yu - 24.01.2016 21:05
[#] Ответ на комментарий от babah-yu 24.01.2016 21:05
Hunchentoot:*acceptor* - не работало, закончилось тем что экспортировал из Restas переменную *acceptors*, в ней то и был список всех акцепторов (в моем случае один).
babah-yu - 11.02.2016 20:43
@2009-2013 lisper.ru