为什么在使用@ CRUD.For时无法覆盖CRUD模板?

时间:2011-07-30 02:49:06

标签: playframework

我正在阅读the play tutorial并且稍微调整一下我决定使用@ CRUD.For而不是使用默认的模型名称复数。问题是我试图覆盖该模型的模板,使用@ CRUD.For,它似乎不起作用。但是,当我使用默认名称时,它才有效...

我有:
1)模型在 应用程序/模型/评论
2)Admin类扩展CRUD注释@ CRUD.For(Comment.class)
app / controllers / admin / AdminComments
3)我有文件
应用程序/视图/ AdminComments /列表
4)我正在使用命令:
play crud:ov --template AdminComments / list

然后我检查管理区域,没有...正如我所说,当我使用默认名称时,它可以工作。

提前致谢。

2 个答案:

答案 0 :(得分:1)

通过阅读播放文档中CRUD.For上的信息,我看不出你做错了什么。我假设当你说你有文件app/views/AdminComments/list时,你实际上是app/views/AdminComments/list.html,如果没有,那么这可能是你的问题。

另外,您已声明使用play crud:ov --template,将此列在列表中。此命令基于模板在视图区域中创建新文件,以便您可以覆盖它以按照您希望的方式工作。我建议按照正确的顺序进行检查,这是

  1. 创建模型类
  2. 使用CRUD.For注释创建CRUD类。确保导入models.Comment
  3. 运行播放命令play crud:ov --template AdminComments/list
  4. app/views/AdminComments/list.html
  5. 中修改生成的模板
  6. 确保AdminComments.java位于app/controllers内,并且您的list.thml位于app/views/AdminComments

答案 1 :(得分:1)

您的AdminComments类位于子包admincontrollers.admin)内,而不是直接位于控制器包内。因此,您必须在views目录中创建一个名为admin的文件夹,并将生成的文件app/views/AdminComments/list.html移动到此目录中。现在文件路径为app/views/admin/AdminComments/list.html

这对我有用。但是crud:ov命令应该自己处理。