2

キー、値マップをテンプレートにレンダリングしてから、この方法でそこに表示しようとしています:

@(twittsIfollow: Map[String, String])
 .....
 @if(twittsIfollow != null) {
  @for((key, value) <- twittsIfollow) {
    @key
    @value
   } 
 }

それは間違っていると言います。Map キー値の 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]

ありがとう

4

3 に答える 3

9

単に

@for((key, value) <- twittsIfollow) {
  @key
  @value
}

ところで、Scala を使用している場合は、twittsIfollow決して null にしないでください。を使用することをお勧めしOptionます。

于 2012-07-05T15:09:35.563 に答える
3

私がどのように解決したか:

    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そしてこのような解決策を探しています..

助けてくれてありがとう、みんな。

于 2012-07-05T20:08:56.280 に答える
1

@doniyor、少し前に他の質問で道を示したので驚いています。

ちなみに、ビルド、パス、イテレーションtwittsIfollowListofMapのようにしたほうがいいと思います

その後、使用できます

@if(twittsIfollow != null) {
  @for(twitts <- twittsIfollow) {
   the value is:  @twitts.get("key")
  } 
}
于 2012-07-05T13:17:34.063 に答える