2016-12-09 8 views
0

マッピング、マップキー、マップ値について質問があります。キーと値のマッピング、Javaでのメッセージの追加

私はチャットプログラムを作成しています:メッセージを追加する際に問題があります。私はメッセージを追加することはできません。それは空のWebページにエラーが表示されます(エラーの番号と理由はわかりません)

どこに問題があるのか​​教えてもらえますか?あなたは

if(!resultat.contains(monSalon)) { 

を行うと、while前にそれをしたいかもしれません

// add a message to a chatroom 
@RequestMapping(value="/addMessageSalon/{salon}/{pseudo}/{message}", method = {RequestMethod.GET, RequestMethod.POST}) 
public String addMessageSalon(HttpServletRequest request, @PathVariable("salon") String chatroom, @PathVariable("pseudo") String username, @PathVariable("message") String message) { 

    Message mes = null;  
    mes.setMessage(message);  
    mes.setPseudo(username); 

    GestionMessages addition = (GestionMessages)request.getSession().getServletContext().getAttribute("gestionMessages"); 

    Map<String, ArrayList<Message>> resultat = addition.getMessages(); 

    Iterator<Map.Entry<String, ArrayList<Message>>> entries = resultat.entrySet().iterator();   

    // iteration 
    while(entries.hasNext()) { 

     Map.Entry<String, ArrayList<Message>> entry = entries.next(); 

     if(!entries.hasNext() && !entry.getKey().contains(chatroom)) { 

      // if chatroom does not exist, we give an error 
      throw new IllegalArgumentException("Chatroom '" + chatroom + "' doesn't exist");   
     } 

     if(entry.getKey().contains(chatroom)){  
      ControleurPrincipal.getUsersInDataBase().add(username);     
      addition.getMessagesSalon(chatroom).add(mes);     
      break;        
     }     
    } 

    resultat = addition.getMessages(); 
    return "redirect:/"; 
} 
+1

それは動作しません。 –

+0

そして、メソッド、変数、クラスの名前付けに英語を使うようにしてください。誰もがフランス語を知らないわけではありません。 –

+0

私はそれをした、あなたは正しい@AdrianBer –

答えて

0

まず:

Message mes = null;  
mes.setMessage(message); 

この、毎回NullPointerExceptionがスローされます。だからそれはあなたが得ているエラー、またはではないあなたのコードです。

それはあなたの実際のコードだ場合、あなたはこのように、最初のメッセージをインスタンス化する必要があります、あなたの質問では、より具体的な問題、実際の行動が何であるかを説明し、コードの一部をハイライトしてください

Message mes = new Message(); 
+0

ありがとう、それは私のために働いた! –

0

代わりのこの

if(!entries.hasNext() && !entry.getKey().contains(monSalon)) { 

を行います。すべての

関連する問題