gpt4 book ai didi

java - 未找到 JSP、EL 属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:44 25 4
gpt4 key购买 nike

为了学习这项技术,我正在用 JSP 创建一个简单的留言簿。目前我有两个类: guestbook/GuestBook.class 和 guestbook/Entry.class (我还没有完成应用程序,所以我只有这些类)被添加到 WEB-INF/libs/并且它们被正确包含.在我的文件 index.jsp 中,我使用的是 guestbook.GuestBook 类;它的方法返回 Vector。当我遍历条目并想打印条目的作者时,我可以看到:

javax.el.PropertyNotFoundException: Property 'author' not found on type guestbook.Entry

我必须补充一点,Entry 类是public 并且 author 属性是这样声明的:

public String author;

所以它也是公开的。这是我遍历条目时的代码:

<c:forEach items="${entries}" varStatus="i">
<c:set var="entry" value="${entries[i.index]}" />
<li><c:out value="${entry.author}" /></li>
</c:forEach>

entry.class.name

返回留言簿条目

这些类在包 guestbook 中(正如您猜到的那样),entries vector 被传递给 pageContext。

我不知道我这样做有什么问题。有人可以帮我吗? (提前致谢!)

最佳答案

JSP EL 不会识别您的类中的公共(public)字段,它只适用于 getter 方法(无论如何这是一个很好的做法 - 永远不要像这样将您的类的状态公开为公共(public)字段)。

所以用

private String author;

public String getAuthor() {
return author;
}

代替

public String author;

附带说明一下,您的 JSTL 过于复杂,可以简化为:

<c:forEach items="${entries}" var="entry">
<li><c:out value="${entry.author}" /></li>
</c:forEach>

甚至

<c:forEach items="${entries}" var="entry">
<li>${entry.author}</li>
</c:forEach>

尽管后一种形式不会对作者姓名进行 XML 转义,因此不建议这样做。

最后,Vector 类已过时,您应该改用 ArrayList

关于java - 未找到 JSP、EL 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285423/

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