0

我刚和hunchentoot一起工作。无论如何,我正在做一个网页来管理教程之后的简单待办事项列表。我的 deletetodo 函数定义有问题:

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

当我从粘液运行 (deletetodo id) 时,它运行良好并且注释被删除。

但是当我从我的 hunchertoot 服务器运行它时,它不会返回任何错误,但它不会删除任何东西!这是我调用deletid页面的函数:

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

使用 deleteid.html?id=1 调用以下页面,假设 1 是一个示例。我尝试跟踪请求,它完全正确,并且发送了正确的 id,但 deletetodo 不起作用!有任何想法吗?

4

1 回答 1

0

我觉得很愚蠢 :) 这只是一个格式问题,随请求发送的 id 值是字符串格式,但需要的是一个 int。所以使用 (read-from-string id) 解决了这个问题。

于 2013-10-15T08:19:47.960 回答