繁体   English   中英

如何渲染地图 <String, String> 模板并在那里使用

[英]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作为MapList会更好

然后你可以使用

@if(twittsIfollow != null) {
  @for(twitts <- twittsIfollow) {
   the value is:  @twitts.get("key")
  } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM