2011-09-30 28 views
0

爲什麼我得到的(重定向/獲取)在這個方案例外:當前延續的標誌:在延續沒有相應的提示:#<繼續提示標籤:網頁>

#lang web-server 
(require web-server/formlets web-server/page) (struct app (nm) #:mutable) 
(define (start req) (render-main-page req)) 

此異常功能是由大多數頁面上使用,並通過調用每個給定片的頁面生成功能生成comlete頁xexpr,其中的每一個可以嵌入它們的URL

(define (render-page embed/url a-title blocks) 
    (response/xexpr `(html (head (title ,a-title) 
     (body ,@(map (lambda (block) (block embed/url)) blocks)))))) 

這是一塊第一頁面生成功能的

(define (render-action-panel embed/url action) 
    `(a ([href ,(embed/url action)]) "New")) 

這是

第一頁
(define/page (render-main-page) 
    (local [(define (new-handler req) (render-app-page req (app "new value"))) 
      (define (panel-block embed/url) (render-action-panel embed/url new-handler))]    
    (render-page embed/url "Title" (list panel-block)))) 

這是一條第二頁面生成功能(表示形式)

(define (add-app-formlet an-app) (formlet (#%# ,{=> input-string nm}) nm)) 
(define (render-app-form embed/url an-app save-handler) 
    `(div (form ([action ,(embed/url save-handler)][method "POST"]) 
       (span ,@(formlet-display (add-app-formlet an-app))) 
       (span (input ([type "submit"][value "Save"]))))));) 

第二種形式, 保存處理程序試圖做-redirect-職位時拋出異常得到

(define/page (render-app-page an-app) 
    (local [(define (save-handler req) 
      (render-app-page 
      (redirect/get) 
      (set-app-nm! an-app (formlet-process (add-app-formlet an-app) req)))) 
      (define (form-block embed/url) 
      (render-app-form embed/url an-app save-handler)) 
      ] 
    (render-page embed/url "Title - form: " (list form-block)))) 

(require web-server/servlet-env) 
(serve/servlet start) 

回答

1

您使用哪種redirect/get

web-server/lang/servlet該一個(其應與#lang web-server使用)比從web-server/servlet所述一個(其應與#lang racket(和朋友)被使用)不同

此錯誤消息表示正在使用從所述一個web-server/servlet

FWIW,web-server/page無法#lang web-server使用,因爲它只是在send/suspend/dispatchweb-server/servlet一個簡單的宏。

+0

我用#lang racket替換了lang (需要web-server/http web-server/formlets web-server/page web-server/servlet) – skazska