我正在使用 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/