【问题标题】:Displaying an ArrayList on a JSP Page via JSTL通过 JSTL 在 JSP 页面上显示 ArrayList
【发布时间】:2011-03-22 21:36:08
【问题描述】:

有人可以帮我弄清楚我做错了什么吗?我有一个带有返回 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 循环时,我得到错误。谢谢。

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    在确认类型上读取“criterionTitles”时出错

    调用getCriterionTitles() 引发了异常。我打赌NullPointerException,因为evalnull。阅读服务器日志以获取完整的堆栈跟踪,追溯代码中的根本原因并相应地修复它。


    与具体问题无关,将类放在默认包中是个坏主意。它仅适用于特定的 servletcontainer/JVM 配置,但不是全部。在包内的普通 Java 类中,默认包中的 import 类是不可能的。一些 servlet 容器为此内置了解决方法,以便“对新手友好”。但你不应该依赖它。

    【讨论】:

      猜你喜欢
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 2014-06-30
      • 2015-06-27
      相关资源
      最近更新 更多