2013-02-17 56 views
1

我有一个视图模板,其中包含头,菜单,页脚(我将这个文件称为主模板)。此模板由其他有一些内容的页面调用。我决定添加登录菜单的表单。我的第一个想法是关于从通过控制器呈现到主模板的视图文件传递表单,但我不需要在每个页面上每次显示登录表单,所以这不会是我的解决方案。在主视图模板头创建表格

我有两个解决方案,但在这两个我有一个问题:

  1. 我创建的形式在主模板,辅助表单和输入按钮,纯HTML

    @helper.form(routes.Application.loginPosted,'class -> "navbar-form pull-right"){         
    <input class="span2" type="text" placeholder="email" name="email"> 
    <input class="span2" type="password" placeholder="passwd" name="passwd"> 
    <button type="submit" class="btn btn-primary">Login</button> 
    } 
    

    和我处理它在控制器中作为DynamicForm并且希望它转换成代表模型以便于验证的形式

    DynamicForm requestData = form().bindFromRequest(); 
    Form<User_Login> loginFormFilled = form(User_Login.class); 
    loginFormFilled.fill(new User_Login(requestData.get("email"), requestData.get("passwd"))); 
    

    但loginFormFilled.get()。电子邮件(和passwd太)总是空白,我不明白为什么。

  2. 我想在主模板中创建表单作为模型表示,但是我不能编写将被编译的代码(它有logForm的问题我知道这是不正确的,但我尝试了很多组合,但是我可以'牛逼创建有效的形式)

    @val logForm = new Form[User_Login] 
    @helper.form(routes.Application.loginPosted,'class -> "navbar-form pull-right"){ 
    @helper.inputText(
         logForm("email") 
    ) 
    @helper.inputPassword(
         logForm("passwd") 
    ) 
    <button type="submit" class="btn btn-primary">Login</button> 
    } 
    

回答

1

你并不需要使用DynamicForm用于填充Form<User_Login>,你可以这样做,在一次(而且很可能这就是你的解决方案)结合:

public static Result loginApproach(){ 
    Form<User_Login> loginForm = form(User_Login.class).bindFromRequest(); 

    String formToString = 
      loginForm.get().email + " with pass: " + loginForm.get().passwd; 

    return ok(formToString); 
} 
+0

它的工作原理。谢谢 – 2013-02-17 22:42:29