gpt4 book ai didi

java - 即使存在 getter,也会发生 PropertyNotFoundException

转载 作者:行者123 更新时间:2023-11-29 07:51:46 27 4
gpt4 key购买 nike

我正在开发一个小型消息传递 Web 应用程序来学习 jsp 和 servlet。我有一个具有以下属性的 MessageModel 类:

String toAddress ;
String fromAddress;
String messageSubject;
String messageContent;
Timestamp messageTime;
int messageDraft;

以及它们相应的setter供jsp访问。

我有一种方法可以查询数据库中的所有消息,以显示接收到特定地址的消息。然后它创建一个新的 MessageModel对象并将其存储在 ArrayList 中。

public static ArrayList<MessageModel> getReceivedMessages(String toAddress) throws SQLException, ClassNotFoundException{
// creates a arraylist.
ArrayList<MessageModel> msgList = new ArrayList<MessageModel>();

// Database connection code..

// The query which gets the required messages from the database and adds them to the list.
String query = "SELECT * FROM messages WHERE msg_to='" + toAddress +"' ORDER BY msg_date DESC";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if(rs.next()){
while(rs.next()){
String msgTo = rs.getString("msg_to");
String msgFrom = rs.getString("msg_from");
String msgSub = rs.getString("msg_subject");
String msgCnt = rs.getString("msg_matter");
Timestamp msgTime = rs.getTimestamp("msg_date");

MessageModel model = new MessageModel(msgTo,msgFrom,msgSub,msgCnt,msgTime);
msgList.add(model);
}
}
return msgList;
}

我从 jsp 调用此方法,并使用

将列表保存为属性
 String userName = (String) session.getAttribute("userId");
ArrayList<MessageModel> list = MessageModel.getReceivedMessages(userName);
pageContext.setAttribute("messageList", list);

但是当我通过 <c:forEach> 访问列表中 MesasgeModel 对象的 fromAddress 属性时标签,我收到以下错误:

javax.el.PropertyNotFoundException: Property 'fromAddress' not found on type com.email.system.MessageModel

这是 HTML 的一部分,access 会打印出每个 MessageModel 的内容。对象。

<c:forEach items="${messageList}" var="message">
<li><c:out value="${message.toAddress}"/>
<c:out value="${message.messageSubject}"/> <c:out value="${message.messageTime}"/>
<c:out value="${message.messageContent}"/> <c:out value="${message.fromAddress}"/> </li>
</c:forEach>

每当我尝试访问 toAddress 时就会发生错误 field 。 toAddress 属性存储在 messageSubject 中即使当我在 mySql 控制台中尝试相同的查询时,我也会在各自的列中得到正确的字段。

我删除了内容列的查询的示例结果,

msg_id  msg_to  msg_from  msg_subject  msg_date             msg_is_draft
4 bigb remember *subject* 2014-10-07 11:01:53 0
2 bigb remember *subject* 2014-10-07 10:48:43 0
1 bigb remember *subject* 2014-10-07 10:48:31 0

编辑:这是MessageModel我有课。

public class MessageModel {
String toAddress ;
String fromAddress;
String messageSubject;
String messageContent;
Timestamp messageTime;
int messageDraft;

public String getToAddress() {
return toAddress;
}

public String getFromAddress() {
return fromAddress;
}

public String getMessageSubject() {
return messageSubject;
}

public String getMessageContent() {
return messageContent;
}


public Timestamp getMessageTime() {
return messageTime;
}

public int getMessageDraft() {
return messageDraft;
}

public MessageModel(String toAddress,String fromAddress, String messageSubject, String messageContent,Timestamp messageTime){
this.toAddress = toAddress;
this.messageSubject = messageSubject;
this.messageContent = messageContent;
this.messageTime = messageTime;
this.fromAddress = fromAddress;
}

public void sendMessage(MessageModel model){
//Gets the related properties from the objects and stores it in the database
}
public static ArrayList<MessageModel> getReceivedMessages(String toAddress){
//Gets the messages sent to 'toAddress'
}
}

最佳答案

事实证明,如果您对应用程序中使用的任何 java 源文件进行一些更改,则必须进行完全重建并重新部署才能发生更改。

当我提出问题时,我的代码没有任何问题,我只是更新资源,而不是重新部署。这只更新对 JSP 所做的更改,而不更新 java 源代码。

关于java - 即使存在 getter,也会发生 PropertyNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26229660/

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