Play 2.4 (Java) - 在 validate 方法中访问 session

Posted

技术标签:

【中文标题】Play 2.4 (Java) - 在 validate 方法中访问 session【英文标题】:Play 2.4 (Java) - Access session in the validate method 【发布时间】:2016-05-30 21:18:43 【问题描述】:

我正在开发一个密码更改模型,其中包含三个字段

当前密码 新密码 确认新密码

在模型的 validate() 方法中,我希望能够通过会话范围获取登录用户,以便检查当前密码是否有效。有没有办法获得会话?或者也许有更好、更安全的方法来实现这一点?

public String validate()

    //Check if current password is valid

    if (newPassword == null || !newPassword.equals(newPasswordConfirm)) 
        return "New passwords do not match";
    
    return null;

【问题讨论】:

会话在控制器层可用。如果此方法在您的模型中,则需要将会话中所需的内容(即:userId)作为参数传递给 validate 方法。你需要解耦。不要尝试将会话传递给您的模型。 有道理,我现在已经这样做了。那不是通过会话 @c4k 如果您将其作为答案提交,我可以接受。 【参考方案1】:

会话在控制器层中可用。如果此方法在您的模型中,则需要将会话中所需的内容(即:userId)作为参数传递给 validate 方法。你需要解耦。不要尝试将会话传递给您的模型。

【讨论】:

以上是关于Play 2.4 (Java) - 在 validate 方法中访问 session的主要内容,如果未能解决你的问题,请参考以下文章

在 Java Play 2.4 中测试具有模拟依赖项的控制器

Java Play 2.4 使用注入为类编写测试用例

Play 2.4 在使用 DI 时首次请求需要更多时间

IntelliJ IDEA 15 Play 2.4 反向路由方法参数“string cannot be applied to java.lang.String”

子项目 Play 2.4 中的 Ebean 增强

Play framework 2.4 表单填写不起作用