我刚刚开始研究Play 2.0,虽然它到目前为止还不是很复杂但是我没有得到非常基本的东西,即请求响应周期。我想要一个JAVA Play的请求响应周期的最小例子
答案 0 :(得分:2)
基本上,请求由HTTP路由器处理,该路由器获取一个URL,例如:mydomain.com/details/。然后它会尝试在路由配置文件中查看此条目。在路径文件的第一个匹配行中,有一个相应的方法(控制器方法),因此它调用控制器方法,该方法将返回由要呈现的视图确定的html响应参数。
简化:请求(网址) - >在路线表中找到路线 - >呼叫静态控制器方法 - >返回带有视图的HTML回复
(也可以参数化url,例如:/ details / 12和routes表:/ details /:id,这样你就可以将id传递给控制器方法了)
另一件事:也可以进行参数化的“反向路由”,例如。一个直接调用控制器方法的按钮,它将从路径文件中找到相应的URL
官方文档非常适合这个主题:http://www.playframework.org/documentation/2.0.2/JavaRouting
答案 1 :(得分:1)
我想指出的是,如果你想通过POST传递数据,你必须将你的请求绑定到某个模型字段,然后在你的应用程序中检索传递的数据:如下所示:
你的HTML:
<form action="/login" method="POST">
<input name="username"/>
...
</form>
你的路线:
POST /login controllers.Application.login()
您的申请:
public static Result login(){
Form<User> passedform = form(User.class).bindFromRequest();
if(passedform.hasErrors){
return badRequest("shit").as("text/plain");
} else {
User user = passedform.get();
System.out.print(user.username);
}
}
现在输出是你在输入字段中给出的用户名..这将以这种方式工作python / django:
def login(request):
print(request.POST.get('username'))
:)))但无论如何,游戏也是美丽的
希望我能帮助你