<!--생략-->
<context:component-scan base-package="com.naver.biz.controller"/>
<!--생략-->
com.naver.biz.controller
아래 패키지의 Annotation을 인식해서 사용하겠다는 의미이다.import org.springframework.stereotype.Controller;
@Controller
public class StudentController{
@RequestMapping("/insertStudent.service")
public String insertStudent(StudentVO vo, StudentDAO dao){
//생략
}
}
- POJO(Plain Old Java Object)로 사용할 수 있어지므로 제약이 없어진다. (ModelAndView를 리턴하는 것, handleRequest를 오버라이딩해야하는 것의 제약)
- 매개변수로 객체를 받아 로직을 바로 처리할 수 있다.
- 일반적인 POJO 객체 뿐만 아니라 Servlet이 제공하는 HttpServletRequest, HttpServletResponse, HttpSession까지 객체로 받아 처리할 수 있다.
@Controller
public class StudentController{
@RequestMapping("/deleteStudent.service")
public String deleteStudent(@RequestParam("studentNum") int num, StudentDAO dao){
//생략
}
}
//생략
@ModelAttribute("studentList")
public List<String> getStudentList() {
List<String> studentList= new ArrayList<String>();
studentList.add("이철수");
studentList.add("김길동");
return studentList;
}
//생략
@RequestMapping("/insertStudentView.do")
public String insertStudentView(@ModelAttribute("student") StudentVO vo) {
vo.setName("김철수");
vo.setRole("반장");
return "insertStudent";
}
- “studentList” : studentList(key: value) 형태로 Model에 저장해준다.
- JSP, Html에서 List를 출력하는 방법
<c:forEach items="${studentList} var="student"> <tr> <td>${student}</td> </tr> </c:forEach>
- @ModelAttribute(“name”), name을 변경하면 접근 이름을 바꿀 수 있으며 생략하면 클래스의 첫 글자만 소문자로 변경해서 등록된다.
- @ModelAttribute을 이용해 접근하는 객체는 비어있어야 하고 getter/setter가 있어야 한다.
- @ModelAttribute 자체도 생략 가능하고 대상 객체는 자동으로 등록된다.
- JSP, Html에서
${student.name}
방법으로 접근 가능하다.
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
addObject("name",object)
: Model(Data 처리 값) 저장setViewName("/WEB-INF/views/ getStudentList.service.jsp")
: 이동할 View 저장
- Model 객체는
addAttribute("name",object)
로 Model을 저장하는 메소드를 지원한다.
@Controller
public class StudentController{
@RequestMapping("/getStudentList.service")
public String getStudentList(StudentVO vo, StudentDAO dao, Model model){
//생략
List<StudentVO> studentList = dao.getStudentList(vo);
model.addAttribute("studentList", studentList);
return "getStudentList.service";
}
}
"/WEB-INF/views/getStudentList.service.jsp"
로 이동한다.
- forward :
return forward:getStudentList.service
- redirect :
return redirect:getStudentList.service
Reference: