【问题标题】:Call an Action from another Action instead of returning any simple result从另一个 Action 调用一个 Action 而不是返回任何简单的结果
【发布时间】:2013-10-26 06:29:43
【问题描述】:
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 中的操作。

【问题讨论】:

    标签: java web-services scala playframework playframework-2.0


    【解决方案1】:

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

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

    Redirect(routes.Dashboard.homePage)
    

    如果问题是您希望通过在您的请求中添加一个新的 json 来调用 Action,然后使用此请求调用 Action,那么这是非常不可取的,如果您愿意的话,仍然如此看看FakeRequest

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多