2013-10-14 1 views
0

Я недавно работаю с hunchentoot. В любом случае, я делаю веб-страницу для управления простым списком todo, следующим за this учебником. У меня есть проблема с моей функцией deletetodo определенно:Hunchentoot: функция не работает на веб-странице, но полностью прекрасна при использовании в слизе

(defun deletetodo (todoid) (setf *todos* (remove (find todoid *todos* :test #'equal :key #'todocid) *todos*)))  

Когда я бег (deletetodo идентификатора) из тины он работает идеально и записка удаляется.

Но когда я запускаю его с моего сервера hunchertoot, он не возвращает никаких ошибок, но ничего не удаляет! это моя функция для вызова deletid страницы:

(define-url-fn (deleteid) 
(let ((id (parameter "id"))) 
    (deletetodo id) 
    (redirect "/menu.html"))) 

Следующая страница была вызвана с deleteid.html ID = 1, предположим, 1 пример. Я пробовал отслеживать запрос, и это абсолютно правильно, и правильный идентификатор отправляется, но deleteetodo просто не работает! Любые идеи?

ответ

0

Я чувствую себя глупо :) Это просто проблема форматирования, значение id, отправленное с запросом, находится в строчном формате, но для этого требуется int. Таким образом, использование (read-from-string id) устраняет проблему.