1
def testSession = Action {
    implicit request =>
      val currentTimes = Calendar.getInstance().getTimeInMillis()
      val validTimes = Long.parseLong(request.session.get("validTill").getOrElse("0"))
      if(currentTimes>validTimes)
      {
        Ok("Session expired, Please log-in again")
      }
      else
      {
       //insert code here to call def saveDemographicDetailsBrowser = Action{}
      }

如果登录尚未过期,我需要在 else 部分插入代码以调用其他操作。接收 json 并点击将数据保存在 db 中的操作。

4

2 回答 2

7

如果你试图从另一个动作中调用一个动作,那么这仅仅意味着你有一个错误的设计。恕我直言,在这种情况下,您应该有一个执行核心功能的方法,并且两个 Action 都应该调用该方法。

无论如何,如果您希望调用另一个 Action,那么您可以重定向:

Redirect(routes.Dashboard.homePage)

如果问题是您希望通过在您的请求中放置一个新的 json 来调用 Action ,然后使用此请求调用 to Action,那么这是非常不可取的,如果您希望再看看FakeRequest ,那仍然是不可取的。

于 2013-10-26T06:37:13.593 回答
0

理想情况下,此类会话验证应进入 RequestHandler/ActionCreator 或 Action 组合。使用这种方法,您可以拦截请求以验证会话过期案例并发送适当的消息,甚至在请求到达您的操作之前。

根据您的播放框架版本,您可以检查以下内容

https://www.playframework.com/documentation/2.5.x/JavaActionsComposition https://www.playframework.com/documentation/2.5.x/JavaActionCreator#Action-creators

于 2016-04-28T07:14:18.607 回答