玩!框架从控制器调用render()动作

时间:2011-10-17 11:12:37

标签: templates playframework

我一直在自定义CRUD模块生成的模板,现在需要覆盖save方法以保存模板中的自定义数据。我可以保存所有数据,但是当我调用渲染操作时:

render("Users/show.html", user);

我得到模板对象的nullPointerException:

enter image description here

我肯定会传递正确的用户对象,因为当我运行它时:

System.out.println(user.toString());
//render("Users/show.html", user);

它将我的用户写入控制台。

非常感谢任何帮助。

Controller View

播放! 1.2.3

1 个答案:

答案 0 :(得分:6)

你的控制器正在渲染

render("Users/show.html", user);

但模板中元素的名称是 object 。它应该是用户

评论更新

CRUd上的原始模板使用“object”作为CRUD下实体的抽象。如果检查控制器的源代码,则说:

//ignoring case when template is not found, alternative also uses object
render(type, object); 

这意味着有两种选择:

  1. 您修改了模板以破坏此兼容性。在你的场景中似乎不是这种情况,虽然我们看不到完整的代码(所以它可能仍然是一个选项)
  2. 您修改了控制器,更改了发送到模板的对象。这似乎是你的情景。因此,要么修复模板以使用用户,要么将用户重命名为对象