在Scala / Play框架中传递带有表单的会话变量

时间:2013-11-19 22:33:57

标签: scala playframework

我正在使用的项目允许登录用户通过表单添加图像来将图像添加到他们的个人资料中。我想知道我是否可以自动传递用户名,因此用户在添加图像时无需输入用户名。我想通过让网站自动添加它来摆脱第一个输入文本框。我知道我可以使用@ {session.get(“displayName”)}访问它,但不知道如何使用表单传递它。

@main("addimage")  {
@helper.form(action = routes.Images.processImageForm) {  <!--  <----------**************************----------------->
    <fieldset>
        <legend>Add My Picture</legend>


        @inputText(
            addImageForm("creatorUsername"),
            '_label -> "Add Name",
            '_help -> "Please enter your display name",
            '_error -> addImageForm.globalError
        )

        @inputText(
            addImageForm("url"),
            '_label -> "Add Image",
            '_help -> "Please add your image-url",
            '_error -> addImageForm.globalError
        )

        @inputText(
            addImageForm("description"),
            '_label -> "Add Description",
            '_help -> "Please enter your Description",
            '_error -> addImageForm.globalError
        )


    </fieldset>




    <div class="actions">
        <input type="submit" class="btn primary" value="Add Image">
        <a href="@routes.Application.index" class="btn">Cancel</a>
    </div> }

1 个答案:

答案 0 :(得分:1)

当您的用户登录时,您可以使用会话来识别它们,播放使用cookie来存储会话相关信息,您的会话应包含一些标识用户的标识符,在控制器中只需从会话中获取此标识符并基于它可以用于检索DB中的使用情况,无需在表单中发送用户名:

def formHandling =  Action { implicit request =>
        val userId = request.session.get(userSession)
        // handling form

      }