2010-02-14 5 views
8

jsp 페이지를 표시하고 해당 객체를 jsp에 전달하는 것과 동일한 작업을 수행하는 객체 (이 경우 ArrayList)가 포함 된 서블릿을 만들 수 있습니까? 페이지. 이 경우 ArrayList에는 반복 작업을 수행하고 결과를 JSP 페이지에 표시 할 데이터베이스 결과가 포함되어 있습니다.서블릿에서 JSP 페이지로 정보를 전달하는 방법

MVC 프레임 워크를 사용하고 있지 않습니다. 기본 Servlet/JSP 아키텍처에서이를 수행 할 수 있습니까?

답변

10

예. 는 JSP에 전달 request.setAttribute("result", yourArrayList);

  • 다음 서블릿 호출

    1. :

      <c:forEach items="${result}" var="item"> 
          ... 
      </c:forEach> 
      

    당신이 '돈 경우 : JSP에서 JSTL을 사용하여

    getServletContext().getRequestDispatcher("your.jsp") 
        .forward(request, response); 
    
  • JSTL을 사용하고 싶습니다 (하지만 사용을 권장합니다). JSP에서 request.getAttribute("result")을 사용하여 값을 가져옵니다.

    또는 권장하지는 않지만 forward()이 아닌 redirect()으로 바꾸려면 request.getSession().setAttribute(..)을 대신 사용할 수 있습니다.

  • +0

    redirect() 접근 방식을 권장하지 않는 이유는 "요청"범위가 다른 새 요청을 유발하는 새 URL로 이동하도록 브라우저에 지시했기 때문입니다. 따라서 결과를 "요청"에 저장할 수 없습니다. -scope (request.setAttribute ...)하지만 새 요청에서 사용할 수있는 범위에 저장해야합니다. 표준 JSP에서는 객체가 영원히 살지 않는 세션 범위 만 사용할 수 있습니다. 일반적으로 원하지 않습니다. 나는 MyFaces Orchestra가 재미있는 대안을 가지고 있다고 믿는다 - http://myfaces.apache.org/orchestra/myfaces-orchestra-core/installation.html –

    +1

    예,하지만 너무 많은데, 그는 MVC 프레임 워크를 사용하고 싶지 않기 때문에 – Bozho

    2

    jsp에 객체를 전달할 수 있습니다. 요청 내에 객체를 임베드 할 수 있습니다.

    request.setAttribute("object", object);

    과 JSP 내에서

    :

    request.getAttribute("object");

    +0

    더 많은 정보를 얻으려면 무엇을해야합니까? 나는 아무것도 얻지 못하고 있습니다. – Ankur

    2

    당신은 ("하여 MyObj"myObj로)를 request.setAttribute를 사용하여 넣을 수 있습니다; javadoc

    2

    "구성 요소"를 만들려는 경우 JSP 페이지를 사용자 정의 태그로 변환하는 것이 좋습니다. 여기에 대한 훌륭한 기사가 있습니다 : http://onjava.com/pub/a/onjava/2004/05/12/jsp2part4.html

    +0

    고마워, 나는 실제로 그것을 지금한다. 그것은 훨씬 깔끔합니다. – Ankur

    관련 문제