Я новичок в контроллерах Java.Я работаю над платформой Play и пытаюсь вернуть ArrayList из контроллера, и он выдает ошибки.Какой правильный способ сделать это?Мой код прямо ниже.
Еще один вопрос, я хотел бы написать простейшую страницу с угловой функциональностью html и javascript, которая вызывает контроллер платформы Play.Есть ли простая платформа, такая как Play framework, но для лицевой стороны?
этот метод:
public Result getComments(int postId) {
ArrayList<Comment> comments = this.commentsDic.getComments(postId);
return ok(comments);
}
выдает следующую ошибку:
no suitable method found for ok(java.util.ArrayList<models.Comment>)
method play.mvc.Results.ok(play.twirl.api.Content) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to play.twirl.api.Content)
method play.mvc.Results.ok(java.lang.String) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to java.lang.String)
method play.mvc.Results.ok(com.fasterxml.jackson.databind.JsonNode) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to com.fasterxml.jackson.databind.JsonNode)
method play.mvc.Results.ok(byte[]) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to byte[])
method play.mvc.Results.ok(java.io.InputStream) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to java.io.InputStream)
method play.mvc.Results.ok(java.io.File) is not applicable
(argument mismatch; java.util.ArrayList<models.Comment> cannot be converted to java.io.File)
и так:
public ArrayList<Comment> getComments(int postId) {
ArrayList<Comment> comments = this.commentsDic.getComments(postId);
return comments;
}
выдает эту ошибку:
Cannot use a method returning java.util.ArrayList[models.Comment] as a Handler for requests
, указывая на файл маршрутов в отмеченной строке:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# An example controller showing a sample home page
GET / controllers.HomeController.index
# An example controller showing how to use dependency injection
GET /count controllers.CountController.count
# An example controller showing how to write asynchronous code
GET /message controllers.AsyncController.message
****************the error points on this line:************
GET /comments
controllers.CommentsController.getComments(postId: Integer)
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file
controllers.Assets.versioned(path="/public", file: Asset)
Полный код контроллера:
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
import services.CommentsDictionary;
import java.util.ArrayList;
import models.Comment;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.List;
@Singleton
public class CommentsController extends Controller {
private final CommentsDictionary commentsDic;
@Inject
public CommentsController() {
this.commentsDic = new CommentsDictionary();
}
public List<Comment> getComments(int postId) {
List<Comment> comments = this.commentsDic.getComments(postId);
return comments;
}
}