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。
中答案 0 :(得分:7)
如果您尝试从另一个Action调用某个操作,那么这只是意味着您的设计错误。恕我直言,在这种情况下你应该有一个方法来执行核心功能,并且两个动作都应该调用该方法。
无论如何,如果你想打电话给另一个动作,那么你可以重定向:
Redirect(routes.Dashboard.homePage)
如果问题是您希望通过在请求中添加新的json然后使用此请求拨打Action
来调用Action,那么这是非常不可取的,如果您愿意的话然后看看FakeRequest。
答案 1 :(得分:0)
理想情况下,此类会话验证应该进入RequestHandler / ActionCreator或Action组合。使用此方法,您可以拦截请求以验证会话过期的情况并发送相应的消息,甚至在请求到达您的操作之前。
根据您的播放框架版本,您可以查看以下内容
https://www.playframework.com/documentation/2.5.x/JavaActionsComposition https://www.playframework.com/documentation/2.5.x/JavaActionCreator#Action-creators