0

我想我对 Play 2 框架有些误解。

在我的应用程序控制器中,我从数据库中获取一个公司对象,我想在我的视图中对其进行一些操作。

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));
        }
    }

渲染对象没有问题。我想解决方案相当简单,而且我错过了文档的一些关键部分。请给我解释一下!

4

2 回答 2

1

在这种情况下,我的步骤如下:

  1. 更改 scala 模板,我们必须告诉 scala 模板我们Company属于模型类:(但也@company.name按照 Jordan 的建议更改为。

     @(company: models.Company)
    
     @main("Welcome to Play 2.0") { 
       <h1>@company.name</h1>
    
     }
    
  2. 运行命令play clean

  3. 然后运行play debug ~run

通过执行play debug ~run,您将触发在您的一个项目文件的每个 SAVE 上编译播放应用程序。

注意:播放模板基本上是函数。这些函数需要编译,并且这些函数中使用的所有内容都需要在使用前声明。就像在常规 Java 开发中一样。

您的对象想要一个字符串的事实render可能是以下结果:

  • @(公司:公司)无法解决给model公司。
  • 最后一次编译有一个 @(company: String)

祝你好运!

于 2012-10-02T16:39:59.177 回答
0

我不知道这是否能解决您的问题,但值得一试。尝试删除更改:

@{公司名}

到:

@公司名

于 2012-10-02T15:39:11.587 回答