ok()永久生成501 Not Implemented - 播放2.2.1

时间:2013-11-22 21:22:12

标签: java playframework playframework-2.2

请帮助我,弄清楚为什么我的ok()永久生成HTTP 501 Not Implemented。

无论我做什么,我总是以游戏的TODO页面结束。在同一个项目中完全克隆相同的动作可以正常工作,并使用渲染模板返回“200 OK”。

正确设置所有操作和路线。编译器没有错误。

以下是代码:

  1. 动作

    public class UserController extends Controller {
    
        static Form<User> userRegisterForm = form(User.class);  
    
        public static Result userRegForm() {
            return ok(userRegister.render(userRegisterForm));
        }
    
    }
    
  2. 路线

    GET     /register   controllers.UserController.userRegForm()
    
  3. UPD: 此组合也返回“501 Not Implemented”,并且在以下后面没有重定向:

    public static Result userRegForm() {
        return redirect( "/" );
    }
    

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题。感谢Marius:http://www.mariussoutier.com/blog/2012/12/10/playframework-routes-part-1-basics/

现在我知道 - 玩路线可能非常棘手。

这是我的路线档案:

  # Routes
  # This file defines all application routes (Higher priority routes first)
  # ~~~~

  # Home page
  GET     /                       controllers.Application.index()

  # Login and Logout
  GET     /login                  controllers.Application.login()
  POST    /login                  controllers.Application.authenticate()
  GET     /logout                 controllers.Application.logout()

  # Adding new task
  GET     /newtask                controllers.TaskController.taskNewForm()
  POST    /newtask                controllers.TaskController.taskAdd()

  # Tasks
  GET     /:category              controllers.TaskController.taskList(category)
  GET     /:category/:taskId      controllers.TaskController.taskDetails(category, taskId: Long)

  # User
  GET     /register               controllers.UserController.userForm()
  POST    /register               controllers.UserController.userNewSave()

  # Map static resources from the /public folder to the /assets URL path
  GET     /assets/*file           controllers.Assets.at(path="/public", file)

因此覆盖了/:category/:category/:taskId这两个GET之后的所有路线。

修复只是将/:category嵌套为子文件夹。这解决了:

  GET     /Category/:category              controllers.TaskController.taskList(category)
  GET     /Category/:category/:taskId      controllers.TaskController.taskDetails(category, taskId: Long)