2014-07-14 5 views
0

나는 하나의 메소드를 가지고있다.이 메소드는 아이템 목록을 리턴한다. 자바 빈 안에는 jsp 내부에서 메소드의 결과를 출력하고 싶지만, 뭔가를 찾을 수 없다. 누군가가 나를 도울 수있는 경우에 유용합니다, 정말 감사 당신이 JSTL를 사용해야합니다 이것은 인쇄 내 방법 목록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

먼저이

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

같은 JSP에서 목록 개체를 가져

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

망가 필요한 imports

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
와 함께이를 추가하는 것을 잊지 JSTL을 사용하여 listObject 반복

간단한 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()); 
    } 
%> 
+0

감사합니다 (그러나 권장되지 않음) .. – Thinker

0

JSP 단독 시험 또는 반복에 대한 아무런 상관이 없습니다.

귀하의 질문은 이미 How to iterate an ArrayList inside a HashMap using JSTL?에 대한 답변이 있습니다. 인쇄 목록을 반복 할 수 스크립틀릿 사용하여 당신은 도움이 링크를 찾을 수 있습니다

0

이 작업을 수행하려면 몇 가지 작업을 수행해야합니다.

먼저 JSP의 변수에 목록을로드해야합니다. 클래스의 패키지 또는 이름을 모르므로 패키지 이름에 "com.yourpath"를, 클래스 이름에 "YourClass"를 바꿔 넣으십시오.JSTL을 사용하여, 마지막으로

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

, 당신은 쉽게 목록을 반복 할 수 있습니다 : 당신이 JSTL을 거기에 루프를 사용 할 수 있도록

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

다음, 당신은 pageContext에로 "목록"을 추가해야합니다 :

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> 

당신은 물론, 변수를 만드는 건너 뛰고 당신에게 코드의 라인 절약, 직접이 같은 PageContext에로) printDirect (의 내용을로드 할 수

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