CRUD模块无法在播放框架中转换有意义的类名称。例如,如果我有一个类别模型,然后在控制器文件夹中创建一个类别类以扩展CRUD,则类别链接将不会出现在管理部分中。但是,如果我将文件重命名为“Categorys”,它将起作用。有没有解决这个小问题的方法?因为我用CakePHP的发挥,它适用于所有的命名约定Play Framework - CRUD命名约定
5
A
回答
9
不错根据documentation of CRUD module of Play framework
控制器的类名必须是模型类的名称与最后的“S”。
但是,你可以使用@ CRUD.For()注释单独定制的CRUD控制器的命名:
package controllers;
import models.Category;
@CRUD.For(Category.class)
public class Categories extends CRUD {
}
编辑:通过CRUD模块的源代码
快速略读之后,我认为模型命名分辨率在{位置播放} /modules/crud/app/controllers/CRUD.java(适用于版本1.2.4)在260行左右:
259 String name = controllerClass.getSimpleName().replace("$", "");
260 name = "models." + name.substring(0, name.length() - 1);
只需查找没有控制器名称的最后一个字符的单词即可找到型号名称。 (我刚刚测试过,你甚至可以将你的CRUD控制器命名为'Categoryz',它的工作原理很好)
所以,如果你真的想以'传统'方式解决这个问题,你可以修改260行CRUD.java并利用一些库进行单数复数转换,如Inflector in ModeShape。但在我看来,使用@CRUD.For注释是很好,更具成本效益。
相关问题
- 1. 命名约定
- 2. 命名约定
- 3. 忽略Ebean命名约定
- 4. TSQL命名约定〜这个命名约定叫什么名字?
- 5. Protobuf命名约定
- 6. c#命名约定
- 7. BEM:命名约定
- 8. 表命名约定?
- 9. ç命名约定
- 10. DAO命名约定
- 11. mysql命名约定
- 12. MySQL命名约定
- 13. .NET命名约定
- 14. Linq2sql命名约定
- 15. xmlns命名约定
- 16. FFMPEG命名约定
- 17. PHP命名约定?
- 18. Microsoft命名约定
- 19. URL命名约定
- 20. serialVersionUID命名约定
- 21. 命名约定Rails
- 22. 良好命名空间命名约定
- 23. 命名空间命名约定
- 24. XAML命名空间命名约定
- 25. 命名约定和命名空间
- 26. MVC5中的命名约定
- 27. Biztalk项目命名约定
- 28. Sharepoint图像命名约定
- 29. Java异常命名约定
- 30. C#WinForms命名约定