Playframework-从多个页面访问同一对象的最简单方法?
我一直在一个网站上工作,该网站在每个页面上显示用户信息。目前,我正在检索用户详细信息(使用会话中存储的Id),然后将用户对象传递给每个页面的呈现方法 有没有一种方法可以从多个页面检索对象,而不将其作为呈现参数添加到每个方法中Playframework-从多个页面访问同一对象的最简单方法?,playframework,Playframework,我一直在一个网站上工作,该网站在每个页面上显示用户信息。目前,我正在检索用户详细信息(使用会话中存储的Id),然后将用户对象传递给每个页面的呈现方法 有没有一种方法可以从多个页面检索对象,而不将其作为呈现参数添加到每个方法中 或者这是唯一/最好的方法吗?您可以在控制器中添加@Before方法: public class UserController extends Controller { @Before public static void prepareUser() {
或者这是唯一/最好的方法吗?您可以在控制器中添加@Before方法:
public class UserController extends Controller {
@Before
public static void prepareUser() {
String id = session.get("userId");
if (null == id) Secure.login();
User user = User.findById(id);
if (null == user) Secure.login();
renderArgs.put("user", user);
}
}
现在,所有其他动作方法将在渲染器中自动拥有一个用户对象
如果要将此功能添加到其他控制器类,则在该类中必须具有@With:
@With(UserController.class)
public class ProfileController extends Controller {...}
您还可以使用@Before注释的“除非”参数从@Before fitler中排除某些操作方法。查看以了解更多详细信息太棒了!我看过rednerArgs,但不知道如何在所有页面上使用它。这正是我需要的。