jsp의 list를 controller에 넘길수 있나요?
- 작성자 :
- 정*성
- 작성일 :
- 2011-07-12 11:53:11
- 조회수 :
- 3,944
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요?
항상 답변에 감사드립니다.
질문 드릴게 3가지 인데요.
프로젝트 생성 시 샘플 게시판에 있는 소스에 대한 내용입니다.
1.
* Controller
List sampleList = sampleService.selectSampleList(searchVO);
model.addAttribute("resultList", sampleList);
* jsp
<c:forEach var="result" items="${resultList}" varStatus="status">
위와 같이 resultList에 대한 결과를 보여주자나요.
jsp에서 submit()을 통해 resultList를 다시 Controller에 넘겨 줄 수 있나요?
2.
* jsp
<input type="hidden" name="searchCondition" value="<c:out value='${searchVO.searchCondition}'/>"/>
* controller
public String selectSampleList(@ModelAttribute("searchVO") SampleDefaultVO searchVO, ModelMap model)
jsp에 hidden으로 해 놓은 것을 controller에서 @ModelAttribute("searchVO")를 통해 받을 수 있는데요.
searchVO라는 name에 SampleDefaultVO 클래스로 가져올 수 있는 이유가 jsp에서 input에 value에 ${searchVO.필드명}로 넣어서 그런건가요?
보아하니 hidden으로 선언한것만 데이터를 받아오던데요.
3.
@RequestMapping("/sample/selectSample.do")
public @ModelAttribute("sampleVO")
SampleVO selectSample(
SampleVO sampleVO,
@ModelAttribute("searchVO") SampleDefaultVO searchVO) throws Exception {
return sampleService.selectSample(sampleVO);
}
글을 조회하는 메소드 인데요.
public 후 @ModelAttribute를 선언한 이유가 뭔가요?
저걸 빼 놓아도 프로그램은 잘 흘러가던데요.
답변에 미리 감사드립니다.
항상 답변에 감사드립니다.
질문 드릴게 3가지 인데요.
프로젝트 생성 시 샘플 게시판에 있는 소스에 대한 내용입니다.
1.
* Controller
List sampleList = sampleService.selectSampleList(searchVO);
model.addAttribute("resultList", sampleList);
* jsp
<c:forEach var="result" items="${resultList}" varStatus="status">
위와 같이 resultList에 대한 결과를 보여주자나요.
jsp에서 submit()을 통해 resultList를 다시 Controller에 넘겨 줄 수 있나요?
2.
* jsp
<input type="hidden" name="searchCondition" value="<c:out value='${searchVO.searchCondition}'/>"/>
* controller
public String selectSampleList(@ModelAttribute("searchVO") SampleDefaultVO searchVO, ModelMap model)
jsp에 hidden으로 해 놓은 것을 controller에서 @ModelAttribute("searchVO")를 통해 받을 수 있는데요.
searchVO라는 name에 SampleDefaultVO 클래스로 가져올 수 있는 이유가 jsp에서 input에 value에 ${searchVO.필드명}로 넣어서 그런건가요?
보아하니 hidden으로 선언한것만 데이터를 받아오던데요.
3.
@RequestMapping("/sample/selectSample.do")
public @ModelAttribute("sampleVO")
SampleVO selectSample(
SampleVO sampleVO,
@ModelAttribute("searchVO") SampleDefaultVO searchVO) throws Exception {
return sampleService.selectSample(sampleVO);
}
글을 조회하는 메소드 인데요.
public 후 @ModelAttribute를 선언한 이유가 뭔가요?
저걸 빼 놓아도 프로그램은 잘 흘러가던데요.
답변에 미리 감사드립니다.
A
안녕하세요.. 정재성님..
1번과 2번을 같이 설명드리겠습니다.
JSP에서 Controller를 호출할 때에 Controller로 넘어 가는 데이터는..
JSP안에 form 데이터들입니다.
즉, <input type=hidden..> 이나 <input type=text..> 등입니다...
이런 데이터 들이.. Controller의 메소드 파라미터(일반 VO 유형)에 매핑되어 들어가도록 되어 있습니다.
SampleDefaultVO 객체가 가지고 있는 setter에 웹 request 데이터(위의 input 들)가 들어가서 처리되는 것입니다.
(resultList와 같은 객체가 넘어가는 것은 아님)
3번의 경우는 말씀하신 것 처럼.. 처리 자체에는 의미가 없지만..
다시 jsp에서 참조하려면.. model에 넣어 줘야 합니다.
(검색 조건의 경우 입력된 조건이 다시 jsp 화면상에 나와야 함..)
이 역할을 해주는 것은 @ModelAttribute입니다...
즉, @ModelAttribute("searchVO") SampleDefaultVO searchVO .. 의 경우..
"searchVO" 모델명으로.. 넘겨진 searchVO 객체를 넣는 것입니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
1번과 2번을 같이 설명드리겠습니다.
JSP에서 Controller를 호출할 때에 Controller로 넘어 가는 데이터는..
JSP안에 form 데이터들입니다.
즉, <input type=hidden..> 이나 <input type=text..> 등입니다...
이런 데이터 들이.. Controller의 메소드 파라미터(일반 VO 유형)에 매핑되어 들어가도록 되어 있습니다.
SampleDefaultVO 객체가 가지고 있는 setter에 웹 request 데이터(위의 input 들)가 들어가서 처리되는 것입니다.
(resultList와 같은 객체가 넘어가는 것은 아님)
3번의 경우는 말씀하신 것 처럼.. 처리 자체에는 의미가 없지만..
다시 jsp에서 참조하려면.. model에 넣어 줘야 합니다.
(검색 조건의 경우 입력된 조건이 다시 jsp 화면상에 나와야 함..)
이 역할을 해주는 것은 @ModelAttribute입니다...
즉, @ModelAttribute("searchVO") SampleDefaultVO searchVO .. 의 경우..
"searchVO" 모델명으로.. 넘겨진 searchVO 객체를 넣는 것입니다.
그럼.. 즐거운 하루되십시오.
감사합니다.