2012-08-01 2 views
0

한 JSP 페이지에서 다른 JSP 페이지로 bean을 전달하려고합니다. 원본 페이지는 검색 결과입니다. JSP 페이지는 JSTL을 사용하여 내 서블릿에서받은 ArrayList (returnedPubs)에서 각 빈의 특정 내용을 출력합니다. 루프 내에서 버튼을 만듭니다. 이 버튼을 누르면 세부 JSP 페이지로 이동하여 해당 특정 bean의 모든 내용을 인쇄합니다. 어떻게해야합니까? 나는 이미 그 ArrayList 안에 있기 때문에 그 bean에 대한 서블릿을 다시 질의하고 싶지 않다. 여기 특정 bean을 해당 JSP 파일에서 다른 JSP 파일로 전달하려면 어떻게해야합니까?

소스 페이지는 (search_results.jsp) 여기서

<table cellpadding="10"> 
    <tr> 
     <td><input type="button" value="Back" onCLick="history.back()"></td> 
    </tr> 
    <tr> 
     <th></th> 
     <th>Publication Number : </th> 
     <th>ATA Number : </th> 
     <th>Part Number(s) : </th> 
     <th>Revision Date : </th> 
    </tr> 
    <c:forEach var="techPubBean" items="${returnedPubs}"> 
     <tr> 
      <form method="post" action="details.jsp"> 
       <td> 
        <input type="submit" value="View Details" /> 
       </td> 
       <td>${techPubBean.getPubNum()}</td> 
       <td>${techPubBean.getAtaNum()}</td> 
       <td>${techPubBean.getPartNumsTrunc()}</td> 
       <td>${techPubBean.getRevDate()}</td> 
      </form> 
     </tr> 
    </c:forEach> 
</table><br/><br/> 
대상의 페이지 (details.jsp)

<table cellpadding="10"> 
    <tr> 
     <td><input type="button" value="Back" onCLick="history.back()"></td> 
    </tr> 
    <tr> 
     <th>ATA Number : </th> 
     <td>${techPubBean.getAtaNum()}</td> 
    </tr> 
    <tr> 
     <th>Publication Number : </th> 
     <td>${techPubBean.getPubNum()}</td> 
    </tr> 
    ... 
</table><br/><br/> 

"techPubBean"을 search_results.jsp에서 details.jsp로 전달하는 방법은 무엇입니까? 다른 모든 것들은 작동하고 제자리에 있습니다. 고맙습니다! 나는 그 대답이 아주 간단하다고 확신한다. 데이브 뉴턴의 의견에 따라 케네스

+0

HTTP 요청을 통해 개체를 전달할 수 없습니다. 문자열을 전달할 수 있습니다. 콩을 세션에 넣을 수 있습니다. 사용자 지정 형식으로 다시 마샬링 할 수있는 항목을 전달할 수 있습니다. 일반적으로 ID를 전달하고 조회합니다. –

+0

세션을 통해 전달하는 것을 이해하지만 이미 구현 한 방법이 없으면 여기에서 피하고 싶습니다. forEach 루프에서 세션에 해당 빈을 추가 할 수는 있지만 모든 빈을 세션에 추가하면 세션이 완전히 중복되고 불필요하게 보입니다. 그 버튼을 클릭 한 경우에만 다른 JSP 파일로 빈을 전달하기를 원하기 때문에 버튼을 클릭 할 때만 해당 빈을 세션에 추가해야합니다. – Kenneth

+0

TL; DR. ID 또는 각 필드를 문자열로 전달할 수 있습니다. 또는 객체를 재구성하는 다른 메커니즘. 그것이 바로 HTTP가되는 방식입니다. –

답변

0

, 그 페이지에 출력을 내용을하는 방법과 CSS/JS 그들을 숨겨 처리 할 수있는 가장 쉬운 방법. 물론 페이지의 소스에 해당 내용을 가지고 있어도 상관 없으며 클라이언트 측의 '속임수'는 받아 들일 만하다고 가정합니다.

관련 문제