racket/collects/web-server/formlets/servlet.ss
Jay McCarthy f5aa64f90b send/formlet issue
svn: r13020
2009-01-06 15:37:23 +00:00

32 lines
887 B
Scheme

#lang scheme
(require web-server/servlet
xml
"lib.ss")
(provide/contract
[send/formlet (((formlet/c any/c))
(#:wrap (xexpr? . -> . response?))
. ->* . any/c)])
(define (send/formlet f
#:wrap
[wrapper
(lambda (form-xexpr)
`(html (head (title "Form Entry"))
(body ,form-xexpr)))])
(formlet-process
f
(send/suspend
(lambda (k-url)
(wrapper
`(form ([action ,k-url])
,@(formlet-display f)))))))
(provide/contract
[embed-formlet (embed/url/c (formlet/c any/c) . -> . xexpr?)])
(define (embed-formlet embed/url f)
`(form ([action ,(embed/url
(lambda (r)
(formlet-process f r)))])
,@(formlet-display f)))