[英]how to render Map<String, String> to template and use there
我正在尝试渲染一个键,将Map映射到模板,然后以这种方式显示:
@(twittsIfollow: Map[String, String])
.....
@if(twittsIfollow != null) {
@for((key, value) <- twittsIfollow) {
@key
@value
}
}
它说,这是错的。 是否有地图键值的scala标记?
这是我的方法:
public static Map<String, String> alltwitts(List<Long> otherIDs) {
Map<String, String> results=new HashMap<String, String>();
for (Long id: otherIDs) {
Query selected_twitt = JPA.em().createQuery("select u.twitt from Twitt u where " + " u.whose = ?").setParameter(1, id);
String twOwner = User.getOneUser(id);
String twitt = (String) selected_twitt.getSingleResult();
results.put(twOwner, twitt);
}
return results;
}
然后我在这个地方渲染到模板:
Map<String, String> twittsIfollow = Twitt.alltwitts(IDusersIamFollowing);
return ok(microblog.render(twittsIfollow));
现在它说: [NonUniqueResultException: result returns more than one elements]
谢谢
只是
@for((key, value) <- twittsIfollow) {
@key
@value
}
顺便说一句,如果你使用Scala, twittsIfollow
永远不应该为null。 更喜欢使用Option
。
我怎么解决:
public static Map<String, List<String>> alltwitts(List<Long> otherIDs) {
Map<String, List<String>> results=new HashMap<String, List<String>>();
for (Long id: otherIDs) {
Query selected_twitt = JPA.em().createQuery("select twitt from Twitt where " + " whose = ? order by id").setParameter(1, id);
String twOwner = User.getOneUser(id);
List<String> twitt = selected_twitt.getResultList();
results.put(twOwner, twitt);
}
System.out.println(results);
return results;
}
然后在我的申请中:
Map<String, List<String>> twittsIfollow = Twitt.alltwitts(IDusersIamFollowing);
return ok(microblog.render(twittsIfollow));
然后在我的模板中:
@(twittsIfollow: Map[String, List[String]])
和
@if(twittsIfollow != null) {
@for((key, value) <- twittsIfollow) {
@for(innervalue <- value){
Username: @key
Twitt: @innervalue
}
}
}
只为那些像我一样愚蠢的人:D并寻找像这样的解决方案..
谢谢你的帮助,伙计们..
@doniyor,我很快就被告知了,不久前我在其他问题上向你展示过。
顺便说一句,我认为构建,传递和迭代twittsIfollow
作为Map
的List
会更好
然后你可以使用
@if(twittsIfollow != null) {
@for(twitts <- twittsIfollow) {
the value is: @twitts.get("key")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.