代码之家  ›  专栏  ›  技术社区  ›  Dosti

在jsp中打印javabean列表

  •  0
  • Dosti  · 技术社区  · 10 年前

    我有一个方法,这个方法返回一个项目列表,在javabean中它可以工作,现在我想在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 回复  |  直到 10 年前
        1
  •  0
  •   SparkOn    10 年前

    首先获取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());
        }
     %>
    
        2
  •  0
  •   Community pid    7 年前

    单独使用JSP无法进行测试或迭代,因此必须使用 JSTL .

    话虽如此,你的问题在 How to iterate an ArrayList inside a HashMap using JSTL? .

        3
  •  0
  •   Community pid    7 年前

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

    how to Print arraylist in jsp using java method

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

        4
  •  0
  •   alfreema    10 年前

    所以你需要做一些事情来让这个工作。

    首先,需要将列表加载到JSP中的一个变量中。我不知道你的包或类名,所以用“com.yourpath”替换包名,用“YourClass”替换类名。

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

    接下来,您需要将“列表”添加到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());
    %>