0

我正在阅读“Play for Java”一书并尝试示例代码。现在我遇到了一个问题:通过运行这个示例代码

import ...

public class Application extends Controller {

  public static Result index() {

    ...
    ...

        List<StockItem> items = StockItem.find()
                .findList();
        return ok(items);

  }

}

ECLIPSE 返回错误消息“ Results 类型中的方法 ok(Content) 不适用于参数 (List) ”。

有人知道我该如何解决吗?感谢您的时间。

4

2 回答 2

3

这取决于您要返回哪种数据格式(JSON、XML 等)。示例显示 JSON 结果:

import ...

public class Application extends Controller {

  public static Result index() {
    List<StockItem> items = StockItem.find().findList();
    return ok(Json.toJson(items));
  }

}

您可以从 Results 类的源代码中查看“ok”方法的所有变体:https ://github.com/playframework/Play20/blob/master/framework/src/play/src/main/java/play/mvc/Results .java

或 javadoc:http ://www.playframework.org/documentation/api/2.0.2/java/play/mvc/Results.html

于 2012-07-27T05:43:37.907 回答
3

ok()接受StringJSON(如武装所写),File甚至InputStream List接受(检查代码

很可能你想返回渲染view

import views.html.yourview;

public class Application extends Controller {

  public static Result index() {
    List<StockItem> items = StockItem.find().findList();
    return ok(yourview.render(items));
  }

}

/app/views/yourview.scala.html

@(items: List[StockItem])

<ul>
  @for(item <- items){
    <li>@item.title</li>
  }
</ul>
于 2012-07-27T07:15:38.970 回答