Play Framework - 从视图向控制器发送数据

时间:2012-05-29 00:48:44

标签: playframework

Controller可以在render方法中将数据作为参数发送到view。视图如何将数据发送到控制器?

编辑:让我澄清一下。

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

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

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

2 个答案:

答案 0 :(得分: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中的工作方式是否相同,但我(真的)希望是的。

答案 1 :(得分:1)

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

你要找的是reverse routing,Play有一个机制。你可以看到它是如何运作的here。 然后,如果您尝试从表单中获取输入,我建议您使用documentation

中详述的Form对象