我有一个方法,这个方法返回一个项目列表,在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;
}
答案 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());
}
%>