在Play Framework上生成管理区域(CRUD)

时间:2011-01-20 03:41:55

标签: java web-applications frameworks playframework

我正在关注Official tutorial创建管理区域。我正确地做了第​​一步但是当我将我的控制器类扩展到CRUD时,我在访问http://localhost:9000/admin/时遇到错误(在项目中找不到Crud)+ Access denied。这就是我所做的:

  1. 为应用程序启用CRUD模块 在/conf/application.conf文件中,通过添加以下行来启用CRUD模块:

    module.crud=${play.path}/modules/crud

    导入默认CRUD路由

  2. 在conf / routes文件中,通过添加以下行来导入默认模块路由:

    * /admin module:crud

  3. 创建用户控制器

    package controllers;
    
    public class Users extends CRUD {
    
    }
    
  4. 重新启动播放&蚀

  5. 有任何关于让管理区域工作的建议吗?

7 个答案:

答案 0 :(得分:11)

再次尝试运行此命令

play eclipsify myApp 

答案 1 :(得分:5)

感谢您的提示,播放eclipsify取得了成功但之前,我必须解决依赖关系,因为它们现在位于dependencies.yml文件中:

# Application dependencies

require:
    - play
    - play -> crud

只需启动“播放依赖项myApp”,然后启动eclipsify。在Eclipse中重新加载项目并且它可以正常工作。

测试最新(1.2.3)

法比安

答案 2 :(得分:3)

这可能是由几个问题引起的。让我概述一下验证设置的步骤:

  1. 控制器名称必须为复数(controllers / Users.java)
  2. 确保您有模型(models / User.java)
  3. 控制器必须扩展CRUD
  4. run play dependencies
  5. run play eclipsify并重新导入项目(以防万一)
  6. 使用@Entity
  7. 注释模型
  8. / admin 的路由必须在 / {console.action}之前......
  9. application.conf必须包含以下行:
    module.crud=${play.path}/modules/crud</li>
    
         

评论:

  • 使用Play框架版本1.2.3不需要在dependencies.yml
  • 中使用crud

答案 3 :(得分:1)

我不了解您的问题,但您的路线定义可能存在问题。 请检查您的conf / routes文件
条目.* /admin module:crud对我来说似乎有点奇怪 当你开始游戏时!服务器是否有任何记录消息指示错误的路由定义? 例如Invalid route definition : .* /admin module:crud
我认为该定义应该类似于* /admin module:crud

答案 4 :(得分:1)

我的解决方案是:

Controller对象必须为复数(以 s 结尾)!

  

控制器的类名必须是带有的模型类名   决赛''。

e.g。如果你有 User.java 模型对象,扩展CRUD的控制器对象必须是用户 * s * .java

我在Windows 7上运行Play 1.2.3,这花了我一段时间才弄明白,希望它可以帮助别人!

答案 5 :(得分:0)

如果你看一下教程,路由文件如下

# Import CRUD routes
*      /admin              module:crud

您还应该通过转到

来检查CRUD模块是否存在
play/modules/crud/

如果它不存在,我建议下载最新版本的Play。

答案 6 :(得分:0)

我不小心在model包裹下写了我的实体,而不是models