我对地图,地图键和地图值有疑问。
我正在写一个聊天程序:我有一个问题是添加消息。我无法添加消息。这使我进入一个带有错误的空网页(无法查看错误的数量和原因)
你能告诉我问题出在哪里吗?
// 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:/";
}
答案 0 :(得分:0)
而不是这样做
if(!entries.hasNext() && !entry.getKey().contains(monSalon)) {
你可能想做
if(!resultat.contains(monSalon)) {
并在while
之前执行。
答案 1 :(得分:0)
首先:
mapper
每次 会抛出NullPointerException。所以,无论是你得到的错误,还是不你的代码。
如果这是您的实际代码,那么您需要首先实例化Message,如下所示:
Message mes = null;
mes.setMessage(message);