gpt4 book ai didi

java - 如何从 ChatMessage 类的列表中显示 String 消息属性?

转载 作者:行者123 更新时间:2023-12-01 13:53:50 24 4
gpt4 key购买 nike

我正在尝试学习 Java 和 Jsf,并且一直在从事聊天功能项目。我在点击发送按钮后试图显示消息。 Eclipse 中出现的错误是来自发送按钮的操作 Controller addMessage 方法的空指针异常。你能告诉我我的代码有什么问题吗?我已经为此工作了 3 天,并尝试应用网上的不同解决方案,但似乎无法修复它。我尽快需要这个,所以我将其发布在这里寻求帮助。这是我的代码:

XHTML 页面:

    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Chat Room</title>
</h:head>
<h:body>

<!-- Pao edited -->
<div class="title" align="center">Welcome to ACT Chat Room</div>

<!-- collective chat messages -->
<div id="chatMessageList">
<table align="center">

<tr>
<td valign="top">
<h:outputText value="#{chatPage.chatMessageList}" />
</td>
</tr>

</table>
</div>

<!-- chat message -->
<div id="chatMessage">
<h:form>
<table align="center">
<tr>
<td>Enter Message:</td>
<td><h:inputTextarea value="#{chatPage.message}" rows="3" cols="75"/></td>
<td><h:commandButton value="Send" action="#{chatPage.addMessage()}" /></td>
</tr>
</table>
</h:form>
</div>

<!-- End editing here -->

</h:body>
</html>

聊天页面类:

    @ManagedBean
@SessionScoped
public class ChatPage {
private String username;
private String message;
private String creationTime;
private String id;
private List<ChatMessage> chatMessageList;
private ChatMessage chatMessage;

public ChatPage(){
}

(getters and setters)

/将chatPage.message放入chatMessage.message并将其添加到chatMessageList的方法/

        public void addMessage(){
ChatMessage chatMessage = new ChatMessage();
chatMessage.setMessage(message);
this.chatMessageList.add(chatMessage);
}
}

ChatMessage 类:

    public class ChatMessage {
private int id;
private String message;
private String creationTime;

(getters and setters)
}

这是我收到的错误:

    java.lang.NullPointerException
actportal.view.chat.ChatPage.addMessage(ChatPage.java:65)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.el.parser.AstValue.invoke(AstValue.java:278)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)

将不胜感激任何帮助。预先感谢!

最佳答案

您似乎没有为 chatMessageList 变量分配任何内容,因此当尝试向其添加 ChatMessage 时,会发生 NullPointerException 。要解决此问题,请将以下行添加到 ChatPage 构造函数中:

chatMessageList = new ArrayList<ChatMessage>();

您需要导入java.util.ArrayList

关于java - 如何从 ChatMessage 类的列表中显示 String 消息属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com