【发布时间】:2011-07-19 00:10:23
【问题描述】:
我正在尝试在 Play Framework(1.2.2) + siena (2.0.2) + crudsiena(2.0.1) + gae(1.4) 上创建基本应用程序。所有这些都是我从 play 的依赖管理系统中获得的。 我正在跟踪文档中的示例,但遇到了一个奇怪的错误:
未找到 els.list 未找到操作
然后在注册的路由中使用相同的“吃掉”类名称:
获取 /admin/?其他索引
GET /admin/mymodels els.list
GET /admin/mymodels/new els.blank
GET /admin/mymodels/{id} els.show
堆栈跟踪非常严格:
play.exceptions.ActionNotFoundException: Action els.index not found
at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:585)
at play.mvc.ActionInvoker.resolve(ActionInvoker.java:84)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.Exception: Controller controllers.els not found
... 3 more
我的文件如下所示:
app/models/MyModels.java:
package models;
import controllers.CRUD;
import controllers.CRUD.For;
@For(models.MyModel.class)
public class MyModels extends CRUD {
}
app/models/MyModel.java:
package models;
import java.util.Date;
import siena.Id;
import siena.Model;
public class MyModel extends Model {
@Id
Long id;
String name;
String description;
Integer price;
Boolean avaliable;
Date menuItemCreated;
}
+ 路由设置为 /admin 模块:crudsiena + dependencies.yml 添加了关于 gae、siena 和 crudsiena 的行
其他文件保持不变。
有人知道我做错了什么吗?
感谢您的建议。
【问题讨论】:
-
您的 els 控制器中是否定义了索引或列表操作?
-
问题是没有“els”控制器。这些动作在我在 MyModels 类中扩展的 controller.CRUD 中。所以它意味着是“MyModels”控制器,但由于未知原因,它只是从类名的开头截断了一些字符。我认为这是某种约定的意思,但我在文档中找不到任何关于它的字眼。
标签: google-app-engine playframework crud siena