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(一);
答案 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