데이터베이스에서 데이터를 가져 와서 하나의 JSP (예 : One.jsp)의 콜렉션 오브젝트에 저장합니다. 이 컬렉션 객체를 다른 JSP에서 사용할 수있게하려고합니다 (Two.jsp라고 말하면됩니다). 대용량 데이터가 포함될 수 있습니다. 그래서, 나는 다음과 같은 방법으로 java bean을 사용했다.컬렉션 오브젝트를 하나의 JSP에서 다른 JSP로 옮기기
public class BeanClass implements Serializable{
private HashMap<String,List<String>> myMap;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public HashMap<String,List<String>> getMyMap() {
return myMap;
}
public void setData(HashMap<String,List<String>> myMap) {
this.myMap = myMap;
}
}
나는 다음과 같은 방법으로 One.jsp에 콩을 설정하고있다.
Can't find a method to write property 'dataMap' of type 'java.util.HashMap' in a bean of type 'com.mypack.BeanClass'
어딘가에 나는 그것이 문자열이 아닌 경우 우리는 다른 것들에 대한 설정을 할 수 없다는 발견
<jsp:useBean id="dataObject" class="com.mypack.BeanClass" scope="session"/>
<jsp:setProperty name="dataObject" property="myMap"/>
<%
dataObject.setData(myMapObj);
%>
는 그러나 나는 다음과 같은 오류가 발생합니다. 어쨌든 컬렉션 객체에서도 작동하도록 해결할 수 있습니까? 그래서 나는 내가 한 많은 일들을 롤백 할 필요가 없다. 누군가가 하나의 JSP에서 다른 JSP로 컬렉션 객체를 전송하는 방법을 제안 할 수 없다면? 스 니펫을 사용한 예가 좋습니다.
콩을 작동시키기위한 몇 가지 추가 구성이 누락 되었습니까?
참고 : 내가 사용했을 수도 리디렉션() 메소드, 그러나 여기 Two.jsp에 One.jsp에서의 탐색은 하이퍼 링크 (HREF)을 클릭하면됩니다
편집 :
Alfreema 덕분에. 그의 솔루션은 setMyMap으로 바꾼 후에 작동했지만, Two.jsp에서는 문제가 발생했습니다. 나는 아래와 같이지도의 일부분만을 표시하려고 노력한다. 하지만 Map에있는 모든 것을 표시 할 때처럼 표시합니다. outprintln (myMap); 전체지도의 내용을 인쇄 한 후 페이지 끝 부분에 표를 표시합니다.
Two.jsp :
<jsp:include page="header.jsp"/>
<jsp:useBean id="dataObject" class="com.mypack.BeanClass" scope="session"/>
<jsp:getProperty name="dataObject" property="myMap"/>
<%! HashMap<String,List<String>> gottenMap = null; %>
<%
gottenMap = dataObject.getMyMap();
%>
<table>
<tbody>
<%
String selectedPart = request.getParameter("part");
List<String> list = gottenMap.get(selectedPart);
for(int i=0; i<list.size(); i++)
{
%>
<tr>
<td colspan='2'><strong>
<%= list.get(i) %>
</strong></td>
</tr>
<%
}
%>
</tbody>
</table>
는 전체 모음을 인쇄 코딩없이 그렇게하지 왜 혼란 스러워요.
어리석은 저, 이것이 문제라고 생각합니다. 정말 고마워요. 그것을 테스트. – Kanth
그게 효과가 있어요. 하지만 지금은 Two.jsp에서 문제가 발생합니다. 내 편집을 들여다 볼 수 있니? – Kanth
그건 완전히 새로운 문제입니다.나는 그것을 위해 새로운 질문을 열 것을 조언 할 것이다. – alfreema