有人可以帮我弄清楚我做错了什么吗?我有一个类,其方法返回一个ArrayList,我无法让它显示在我的JSP页面上。这是我的代码:
//java class
public class Confirmation {
ArrayList<Criterion> criterion = null;
ArrayList<String> criterionTitles = null;
EvaluationDefinition eval = null;
public ArrayList<String> getCriterionTitles() {
criterion = new ArrayList<Criterion>();
criterionTitles = new ArrayList<String>();
for(int i = 0; i < eval.getGroups().get(0).getCriterionCount(); i++ )
{
criterion.add(eval.getGroups().get(0).getCriterion().get(i));
criterionTitles.add(i, criterion.get(i).getTitle());
}
return criterionTitles;
}
}
//jsp page code...
<jsp:useBean id="criterionTitles" scope="page" class="Confirmation" />
// ERROR MSG HERE: Error reading 'criterionTitles' on type Confirmation
<c:forEach var="title" items="${criterionTitles.criterionTitles}">
<c:out value="${title}" />
</c:forEach>
如果我在servlet中运行for循环逻辑并且只运行out.println(criterion.get(i).getTitle()它就会打印好标题。就在我运行c:foreach循环的时候错误。谢谢。
答案 0 :(得分:0)
在确认类型
上读取'criterionTitles'时出错
调用getCriterionTitles()
引发了异常。我对NullPointerException
的赌注是因为eval
是null
。读取服务器日志以获取完整的堆栈跟踪,跟踪代码中的根本原因并相应地修复它。
与具体问题无关,将类放在默认包中是个坏主意。它只能在特定的servletcontainer / JVM配置上使用,但不是全部。在包内的普通Java类中,默认包中的import
类是不可能的。一些servletcontainers为此建立了变通方法,以便“noob-friendly”。但你不应该依赖它。