2012-07-27 95 views
0

我正在閱讀「Play for Java」一書,並嘗試使用示例代碼。現在,我就死在了一個問題:通過運行此示例代碼Playframework:方法ok(內容)不適用於列表類型參數?

import ... 

public class Application extends Controller { 

    public static Result index() { 

    ... 
    ... 

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

    } 

} 

ECLIPSE返回的錯誤消息「的方法確定(內容)的類型的結果是不適用的參數(列表)」。

有人知道我該如何解決它嗎?感謝您的時間。

回答

3

這取決於你想要返回什麼樣的數據格式(JSON,XML等)。 實施例示出了JSON結果:https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/java/play/mvc/Results.java

或Javadoc中:

import ... 

public class Application extends Controller { 

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

} 

「OK」 方法可以從結果類的源代碼視圖的所有變型http://www.playframework.org/documentation/api/2.0.2/java/play/mvc/Results.html

3

ok()接受StringJSON(如武裝寫道),File甚至InputStream不是Listcheck 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> 
相關問題