在jsp中打印java bean列表

时间:2014-07-14 19:27:23

标签: java jsp javabeans owl-api

我有一个方法,这个方法返回一个项目列表,在java bean里面它现在可以工作我想在jsp里面打印方法的输出,但我搜索了很多东西找不到有用的东西,如果有人可以帮助我,我真的很感激 这是我打印列表的方法

public static List printDirect() {
    List returned_list = new ArrayList ();

    //StringBuilder text=new  StringBuilder();
    manager = OntologyManagement.ontology.getOWLOntologyManager();
    factory = manager.getOWLDataFactory();

    reasonerFactory = new StructuralReasonerFactory();
    progressMonitor = new ConsoleProgressMonitor();
    config = new SimpleConfiguration(progressMonitor);
    reasoner = reasonerFactory.createReasoner(ontology, config);
    // Ask the reasoner to do all the necessary work now
    reasoner.precomputeInferences();
    OWLClass thing = factory.getOWLThing();
    NodeSet<OWLClass> subClses = reasoner.getSubClasses(thing, true);
    Set<OWLClass> clses = subClses.getFlattened();
    System.out.println("Subclasses of owl:thing =  ");
    for (OWLClass cls : clses) {
        String row = cls.toString();
        String[] split = row.split("#");
        String word = split[1].substring(0, (split[1].length() -1));
        returned_list.add(word);
        System.out.println("    " + word);
    }
    return returned_list;
}

4 个答案:

答案 0 :(得分:0)

单独的JSP没有用于测试或迭代的任何内容,因此您必须使用JSTL

话虽如此,您的问题已在How to iterate an ArrayList inside a HashMap using JSTL?中得到答案。

答案 1 :(得分:0)

您可能会发现此链接很有用,

how to Print arraylist in jsp using java method

通过使用scriptlet,您可以迭代列表进行打印。但这不是一个好习惯。使用JSTL可以让您的工作更轻松。

答案 2 :(得分:0)

所以你需要做一些事情来使这项工作。

首先,您需要将列表加载到JSP中的变量中。我不知道你的班级的包裹或名称,所以换掉你的包裹名称的“com.yourpath”和你班级名称的“YourClass”。

<%
    java.util.List list = com.yourpath.YourClass.printDirect();
%>

接下来,您需要将“list”添加到pageContext,以便您可以使用JSTL循环它:

<%
    pageContext.setAttribute("list", list);
%>

最后,您可以使用JSTL轻松遍历列表:

List contents:<br>
<c:forEach var="element" items="${list}">
    ${element}<br>
</c:forEach>

您应该考虑在页面顶部使用@page来导入您的类,以便上面的代码看起来不那么混乱:

<%@ page import="com.yourpath.YourClass" %>
<%@ page import="java.util.List" %>

所以完全放在它看起来像:

<%@ page import="com.yourpath.YourClass" %>
<%@ page import="java.util.List" %>

<%
    List list = YourClass.printDirect();
    pageContext.setAttribute("list", list);
%>

List contents:<br>
<c:forEach var="element" items="${list}">
    ${element}<br>
</c:forEach>

以下内容应该在没有您的课程的情况下为您提供简单的测试,以确定您是否在课堂上遇到任何问题或只是一般的技术:

<%
    java.util.Map map = java.lang.System.getenv();

    pageContext.setAttribute("map", map);
%>

<c:forEach var="element" items="${map}">
    ${element.key} = ${element.value}<br>
</c:forEach>

当然,您可以跳过创建变量并将printDirect()的内容直接加载到pageContext中,从而为您节省一行代码:

<%
    pageContext.setAttribute("list", com.yourpath.YourClass.printDirect());
%>

答案 3 :(得分:0)

首先在jsp中获取List对象,如下所示

<%
    List list = fullQualifiedClassName.printDirect();
%>

然后使用JSTL

遍历listObject
<c:forEach items="${list}" var="item">
    ${item}<br>
</c:forEach>

别忘了添加必要的imports

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

您甚至可以使用简单的Scriptlets来迭代List(但不推荐)

<% for (int i=0;i<list.size();i++)
  {
     out.println(list.get(i));  
  } 
%>

<%  Iterator iterator = list.iterator();
    while (iterator.hasNext()) {    
        out.println(iterator.next());
    }
 %>