请帮助我,弄清楚为什么我的ok()永久生成HTTP 501 Not Implemented。
无论我做什么,我总是以游戏的TODO页面结束。在同一个项目中完全克隆相同的动作可以正常工作,并使用渲染模板返回“200 OK”。
正确设置所有操作和路线。编译器没有错误。
以下是代码:
动作
public class UserController extends Controller {
static Form<User> userRegisterForm = form(User.class);
public static Result userRegForm() {
return ok(userRegister.render(userRegisterForm));
}
}
路线
GET /register controllers.UserController.userRegForm()
UPD: 此组合也返回“501 Not Implemented”,并且在以下后面没有重定向:
public static Result userRegForm() {
return redirect( "/" );
}
答案 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)