한 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로 전달하는 방법은 무엇입니까? 다른 모든 것들은 작동하고 제자리에 있습니다. 고맙습니다! 나는 그 대답이 아주 간단하다고 확신한다. 데이브 뉴턴의 의견에 따라 케네스
HTTP 요청을 통해 개체를 전달할 수 없습니다. 문자열을 전달할 수 있습니다. 콩을 세션에 넣을 수 있습니다. 사용자 지정 형식으로 다시 마샬링 할 수있는 항목을 전달할 수 있습니다. 일반적으로 ID를 전달하고 조회합니다. –
세션을 통해 전달하는 것을 이해하지만 이미 구현 한 방법이 없으면 여기에서 피하고 싶습니다. forEach 루프에서 세션에 해당 빈을 추가 할 수는 있지만 모든 빈을 세션에 추가하면 세션이 완전히 중복되고 불필요하게 보입니다. 그 버튼을 클릭 한 경우에만 다른 JSP 파일로 빈을 전달하기를 원하기 때문에 버튼을 클릭 할 때만 해당 빈을 세션에 추가해야합니다. – Kenneth
TL; DR. ID 또는 각 필드를 문자열로 전달할 수 있습니다. 또는 객체를 재구성하는 다른 메커니즘. 그것이 바로 HTTP가되는 방식입니다. –