【问题标题】:Play Framework - sending data from view to controllerPlay Framework - 将数据从视图发送到控制器
【发布时间】:2012-05-29 18:59:44
【问题描述】:

控制器可以将数据作为渲染方法中的参数发送给视图。视图如何向控制器发送数据?

编辑:让我澄清一下。

Application.showQuestion(Question q){ render(q); }

showQuestion.html 显示问题“q”并有一个文本框用于输入“a”到“q”的答案。表单上的提交按钮调用方法 createAnswer。我不仅要传递答案'a',还要传递问题'q'。 createAnswer(q, a) 会实现同样的效果吗?我的目标是:

a.question = q; q.addAnswer(a);

【问题讨论】:

    标签: playframework


    【解决方案1】:

    我不完全确定我是否正确理解了您的问题,但希望是的:

    将问题 q 与答案 a 一起传递的最简单方法是使用预定义的模板“表单”。您可以执行以下操作:

    showQuestion.html:
    
    #{form @Application.createAnswer(q), id:'answerForm'}
       ...
       // add input for the answer here
       ...
    #{/form}
    

    然后在 Application.java 中定义方法 Application.createAnswer(q, a),该方法将被调用。因此表单标签中使用的参数和表单中的输入组合在一起。 #{form @Application.createAnswer(q)... 部分实际上只做的是,它在表单中创建隐藏的输入字段,当点击提交按钮时,这些字段被传递给控制器​​。

    关于表单标签的详细信息: Form tag in playframework 1.2.4

    请注意,我所描述的内容适用于 playframework 1.2.4。我不确定它在 2.0.1 中是否以同样的方式工作,但我(真的)希望是的。

    【讨论】:

      【解决方案2】:

      我猜你想要做的是让用户通过点击你生成的网页来调用正确的控制器。

      您要查找的内容称为reverse routing,Play 对此有一个机制。你可以看到它是如何工作的here。 然后,如果您尝试从表单中获取输入,我建议您使用 documentation 中详述的 Form 对象

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        • 2016-08-11
        • 1970-01-01
        • 1970-01-01
        • 2021-04-07
        相关资源
        最近更新 更多