作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试使用 RankingResult 类的简单 ArrayList 中的信息填充 xml 文件时遇到上述错误。经过一番搜索后,我发现大多数出现此错误的人都在 xml 中犯了拼写错误,但这里的情况似乎并非如此(如果是的话,我会觉得很愚蠢)。
我已经有一个非常类似的事情正在发生并且工作得很好( Controller 重定向到一个 xml,发送一个对象的 ArrayList,然后由 打印,所以我完全迷失了。
这是一些代码:
“ranking.jsp”xml
<?xml version="1.0" encoding="UTF-8"?>
<%@page contentType="application/xml" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<data>
<c:forEach items="${results}" var="result">
<tr>
<td>${result.genero}</td>
<td><c:out value="${result.quantidade}"/></td>
</tr>
</c:forEach>
</data>
Controller doPost()
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ator = request.getParameter("ator");
String diretor = request.getParameter("diretor");
ArrayList<RankingResult> results = null;
try{
BuscaDAO b2DAO = new BuscaDAO();
results = b2DAO.busca2(ator, diretor);
} catch(DAOException | SQLException ex) {
Logger.getLogger(Busca1.class.getName()).log(Level.SEVERE, null, ex);
}
request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/xml/ranking.jsp").forward(request, response);
}
调试确认“结果”ArrayList 已正确填充。
RankingResult 类:
public class RankingResult {
public final String genero;
public final int quantidade;
public RankingResult(String genero, int quantidade){
this.genero = genero;
this.quantidade = quantidade;
}
}
项目树:
最佳答案
这个消息绝对正确。您的类(class)中没有属性名称genero。您有一个名为genero的公共(public)字段。但 JSP EL 适用于 Java Bean 属性。你需要一个
public String getGenero() {
return this.genero;
}
您的 RankingResult
类中的方法。
一般而言,使用公共(public)字段是不好的做法,并且不能与 JSP EL 一起使用,JSP EL 是围绕 Java Beans 约定设计的。
关于javax.el.PropertyNotFoundException : Property 'genero' not found on type model.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44746265/
我在尝试使用 RankingResult 类的简单 ArrayList 中的信息填充 xml 文件时遇到上述错误。经过一番搜索后,我发现大多数出现此错误的人都在 xml 中犯了拼写错误,但这里的情况似
我是一名优秀的程序员,十分优秀!