【问题标题】:Playframework: Method ok(Content) is not applicable for List-type arguments?Playframework:方法 ok(Content) 不适用于 List 类型的参数?
【发布时间】:2012-07-27 02:08:24
【问题描述】:

我正在阅读“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)”。

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

【问题讨论】:

    标签: java playframework playframework-2.0


    【解决方案1】:

    这取决于您要返回哪种数据格式(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

    【讨论】:

      【解决方案2】:

      ok() 接受StringJSON(如武装所写)、File 甚至InputStream不接受 List (check in the code)

      您很可能希望返回呈现的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>
      

      【讨论】:

        猜你喜欢
        • 2021-04-04
        • 1970-01-01
        • 2013-12-19
        • 2013-08-20
        • 1970-01-01
        • 2014-06-26
        • 2020-12-31
        相关资源
        最近更新 更多