0

我正在尝试将工作项目中的 Cheetah 从 0.9 升级到 2.4.4。在模板中创建某些变量时,我遇到了一些奇怪的错误。下面是一个例子:

#set formUtil = $iLib.aquariumFactory("widget.FormUtil",
    defaults=[{"username": $session.get("username")}, $form])

这会在编译时产生以下错误:

NotFound:在搜索“get”时找不到“get”

如果我这样重构:

#set username = $session.get("username")
#set formUtil = $iLib.aquariumFactory("widget.FormUtil",
    defaults=[{"username": $username}, $form])

我没有错误。我在其他地方遇到了类似的错误(“在搜索 X 时找不到 X”),但我不清楚 Cheetah 中发生了什么变化,以便我可以以一致的方式解决它。

4

1 回答 1

1

我弄清楚了这个问题。Cheetah 的 WebWare Servlet 代码具有请求、响应、会话和事务的变量。这些变量成为模板中的占位符。如果您不使用 WebWare,那么这些占位符将设置为 None,并将覆盖搜索列表中的任何类似名称的值。

于 2013-05-22T21:45:01.353 回答