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

Mar*_*ffx 4 templates playframework

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

render("Users/show.html", user);
Run Code Online (Sandbox Code Playgroud)

我得到模板对象的nullPointerException:

在此输入图像描述

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

System.out.println(user.toString());
//render("Users/show.html", user);
Run Code Online (Sandbox Code Playgroud)

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

任何帮助都感激不尽.

控制器 视图

玩!1.2.3

Per*_*ega 6

你的控制器正在渲染

render("Users/show.html", user);
Run Code Online (Sandbox Code Playgroud)

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

评论更新

CRUd上的原始模板使用"object"作为CRUD下实体的抽象.如果检查控制器的源代码,它会说:

//ignoring case when template is not found, alternative also uses object
render(type, object); 
Run Code Online (Sandbox Code Playgroud)

这意味着有两种选择:

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