www.cgi.dispatch-tir(Gauche-www-cgi-dispatch-tir)は、CGIの為のディスパッチテーブルを提供します。
ディスパッチテーブルは、モジュール単位で、それぞれ別々に定義できます。
予め、(use www.cgi.dispatch-tir)しておいて下さい。
(define-cgi-entry variable template expression) (define-cgi-entry (variable . formals) template body ...)
ディスパッチエントリを定義します。
(define-cgi-entry (disp-cgi-menu ...) '(("cmd" "menu")) body...) (define-cgi-entry disp-cgi-fallback '() disp-cgi-menu) (define-cgi-entry (disp-cgi-hoge ...) '(("c" "a") ("submit" :*)) body...)
(cgi-params-dispatch cgi-params &optional fallback)
define-cgi-entryで定義されたエントリ群から、paramsに最もマッチするものを一つ選び、返します。
(cgi-main (lambda (params) ((cgi-params-dispatch params) params)))
(cgi-entry->url defined-symbol &keyword :base-url :params)
指定したエントリを呼び出せるurl文字列を返すマクロです。
(cgi-entry->url 'disp-cgi-hoge :params `(("id" ,id)))
(cgi-entry->html:form defined-symbol &keyword :base-url :params :internal-html :submit-label ...)
指定したエントリを呼び出せるformのhtmlを返すマクロです。
(cgi-entry->html:form 'disp-cgi-hoge :submit-label "決定" :params `(("id" ,id)))
(cgi-entry->html:a defined-symbol &keyword :base-url :params :label ...)
指定したエントリを呼び出せる、htmlのアンカータグを生成して返すマクロです。
(cgi-entry->html:a 'disp-cgi-hoge :label "ほげ画面" :params `(("id" ,id)))
(module&cgi-entry->url module defined-symbol &keyword :base-url :params)
cgi-entry->urlの関数版です。
(module&cgi-entry->url (current-module) 'disp-cgi-hoge :params `(("id" ,id)))
(module&cgi-entry->html:form module defined-symbol &keyword :base-url :params :internal-html :submit-label ...)
cgi-entry->html:formの関数版です。
(module&cgi-entry->html:form (current-module) 'disp-cgi-hoge :submit-label "決定" :params `(("id" ,id)))
(module&cgi-entry->html:a module defined-symbol &keyword :base-url :params :label ...)
cgi-entry->html:aの関数版です。
(module&cgi-entry->html:a (current-module) 'disp-cgi-hoge :label "ほげ画面" :params `(("id" ,id)))
(cgi-entry-name->template-alist defined-symbol)
指定したエントリのtemplateを取り出します。
(cgi-entry-name->template-alist 'disp-cgi-hoge)