当我试图用来自类ArrayList的RankingResult的信息填充xml文件时,我得到了上面的错误。在搜索之后,我发现大多数有此错误的人都会在xml中输入错误,但这里的情况似乎并非如此(如果是这样的话,我会感到非常愚蠢)。
我已经有了一件非常类似的事情,而且工作非常完美(控制器重定向到一个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>控制器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;
}
}项目树:


发布于 2017-06-25 12:17:04
这个信息是完全正确的。您的类中没有属性名genero。您有一个名为genero的公共字段。但是JSP工作在Java 属性上。你需要一个
public String getGenero() {
return this.genero;
}方法在您的RankingResult类中。
一般情况下,使用公共字段是不好的做法,并且不能使用JSP,JSP是围绕着Java约定设计的。
https://stackoverflow.com/questions/44746265
复制相似问题