我认为我误解了Play 2框架。
在我的应用程序控制器中,我从数据库中获取了一个Company对象 在我看来,我想对它进行一些操作。
companyView.scala.html:
@(company: Company)
@main("Welcome to Play 2.0") {
<h1>@{company.name}</h1>
}
应用程序控制器:
package controllers;
import models.Company;
import play.*;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public static Result company(String rest) {
Company company =
Company.find.where().ilike("restfulIdentifier.identifier", rest).findUnique();
return ok(companyView.render(company));
}
}
但是return ok(companyView.render(company));
会导致编译错误,因为companyView.render
想要一个字符串。
如果我查看表单示例应用程序:
/**
* Handle the form submission.
*/
public static Result submit() {
Form<Contact> filledForm = contactForm.bindFromRequest();
if(filledForm.hasErrors()) {
return badRequest(form.render(filledForm));
} else {
Contact created = filledForm.get();
return ok(summary.render(created));
}
}
渲染对象没有问题。我想这个解决方案非常简单 我错过了文档的一些关键部分。请向我解释一下!
答案 0 :(得分:1)
我在这种情况下的步骤如下:
更改scala模板,我们必须告诉scala模板我们的Company
属于模型类:(但也按照Jordan的建议更改为@company.name
。
@(company: models.Company)
@main("Welcome to Play 2.0") {
<h1>@company.name</h1>
}
运行命令play clean
play debug ~run
通过执行play debug ~run
,您将触发在您的某个项目文件的每个SAVE上编译播放应用程序。
注意: Play模板基本上是功能。需要编译这些函数,并且在使用之前需要声明这些函数中使用的所有函数。就像在常规Java开发中一样。
您的render
对象需要字符串这一事实可能是以下结果:
model
公司。答案 1 :(得分:0)
我不知道这是否能解决您的问题,但值得一试。尝试删除更改:
为: