RacketでWebサーバ+formletsを使ってみます。
以下のコードで、ローカルホストの8000ポートでWebサーバが立ち上がります。
#lang racket
(require
web-server/servlet
web-server/servlet-env
web-server/dispatch
web-server/formlets)
(define-values (dispatcher _)
(dispatch-rules
[("input") show-input]
[("output") show-output]
[else show-default]))
(define form
(formlet
(div "input:" ,{=> input-string input})
input))
(define (show-input req)
(response/xexpr
`(html
(head (title "input"))
(body (form ((action "output"))
,@(formlet-display form)
(submit))))))
(define (show-output req)
(let ((input (formlet-process form req)))
(response/xexpr
`(html
(head (title "output"))
(body (p "output : " ,input))))))
(define (show-default req)
(response/xexpr
`(html (head (title "default"))
(body (p "default page")))))
(serve/dispatch dispatcher)
input-intフォームに数字以外の文字列を渡した場合に
contractで怒られるのを回避するにはどうすればよいのだろう。
0 件のコメント:
コメントを投稿