将表单响应存储在会话数据中

时间:2019-01-15 09:52:13

标签: java scala playframework

目前,我正在我的Scala Play应用程序中使用一些多阶段表单,这种多步骤表单的最终结果是使用此JSON结构将POST请求发送到端点,

{{ "name":"Company Name", "contact": { "firstname":"Firstname1", "surname":"Surname1", "email":"firstname1.surname1@xyz.com", "textPhone":false, "phone":"12222222222222" }, "address": { "addressLine1":"Address Line 1", "town":"Town1", "county":"County", "postcode":"LS1 3DE" } }

对于每个表单提交,我都会执行以下操作

request.session + ("organisation_name" -> formData.toString())

是否可以在会话中使用此JSON结构并将数据推送到正确的属性?还是有一种方法可以获取会话数据并将其处理为遵循上述格式的JSON?

2 个答案:

答案 0 :(得分:0)

向会话添加内容的一种方法是这样的:

request.session.copy(
  data = request.session.data + ("organisation_name" -> formData.toString())
)

在返回点添加到会话的另一种方法是这样的:

Redirect(routes.......).addingToSession("organisation_name" -> formData.toString())

答案 1 :(得分:-1)

尝试在请求会话中存储JSON对象。 或者,您可以尝试使用Timestamp缓存JSON对象,然后从缓存映射中读取它,这样当您从中返回到前一个对象时,可以通过获取其属性来重新填充。