2012-07-10 44 views
1

我刚刚开始玩游戏2.0,尽管目前为止它并不是非常复杂,但我没有得到很基本的东西,例如请求响应循环。我很喜欢JAVA播放的请求响应周期的一个简单例子什么是游戏中的请求响应循环

回答

2

基本上,请求由HTTP路由器处理,它获取一个url,例如:mydomain.com/details/。然后它会尝试在路由配置文件中查找此条目。在路径文件的第一个匹配行中,有一个相应的方法(一个控制器方法),所以它调用controller方法,该方法将返回一个由视图渲染的html响应参数。

简化:请求(URL) - >找到在路由表中的路由 - >调用静态控制器的方法 - >与该视图返回一个HTML响应

(也可以参数的URL,例如:/细节/ 12和路由表中:/ details /:id,所以你可以将id传递给控制器​​方法)

另一件事:它也可以做“反向路由”,这是参数化的例如。一个按钮来直接调用控制器的方法,它会找到相应的URL从routes文件

官方文档是这个主题相当不错:http://www.playframework.org/documentation/2.0.2/JavaRouting

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); 
    } 
} 

现在输出您在输入字段中给出的用户名..这将工作蟒蛇/ Django的这样:

def login(request): 
    print(request.POST.get('username')) 

:)) )但无论如何,玩也很漂亮

希望我能帮你