gpt4 book ai didi

java - 为什么作为路由参数的映射类型不匹配?

转载 作者:行者123 更新时间:2023-12-01 11:35:30 25 4
gpt4 key购买 nike

我正在使用 playframework 2.3.8 并且有一个 View 类。其中有一个按钮:

<button class="btn btn-default" type="button" onclick="@routes.Application.sendMap(myMap)" method="POST">Send</button>

我想将问题/答案对附加到我的 Controller 类 (Application.java) 中的 map :

public static Result sendMap(Map<Question, List<Answer>> sendMap){
Question question4 = new Question("ertw", "SendMap Question?", 34, "Tim");
Answer answer41 = new Answer("werw", "ertw", "SendMap Answer 1!", 12, "Oliver");
Answer answer42 = new Answer("tzsdfu", "ertw", "SendMap Answer 2!", 1, "Marcus");

List<Answer> answerList4 = new ArrayList<Answer>();
answerList4.add(answer41);
answerList4.add(answer42);

sendMap.put(question4, answerList4);
return ok(views.html.frageAntwort.render(sendMap));
}

在我的routes.conf中,我已将路由添加到 Controller 类并使用Map作为参数:

POST    /QuestionMap                    controllers.Application.sendMap(Map)

但现在我收到错误:

类型不匹配;
发现:字符串
必需:java.util.Map[model.Question,java.util.List[model.Answer]]

为什么 map 会被转换成字符串?

最佳答案

默认参数类型为String:“对于String类型的参数,参数类型是可选的。” Documentation Play 。您还可以在那里查看:How to create Map - post on Stack Overflow 。您应该创建正确的模板,然后将其传递到配置文件上的方法中的参数

关于java - 为什么作为路由参数的映射类型不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com