- 요청 파라미터를 특정 객체에 담고 싶을 때 사용
- 지정한 커맨드 클래스의 객체를 생성한 뒤, 커맨드 객체의 프로퍼티의 이름과 일치하는 이름을 갖는 파라미터 값으로 프로퍼티를 설정
package bean; public class UserBean { String userId; String passWord; String userName; String address; //각각의 get, set 메소드 ...... @Override public String toString() { return "UserBean [address=" + address + ", passWord=" + passWord + ", userId=" + userId + ", userName=" + userName + "]"; } } |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> |
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractCommandController; import bean.UserBean; public class UserAbstractCommandController extends AbstractCommandController { //생성자를 이용하는 방법 //public UserAbstractCommandController(){ // setCommandClass(UserBean.class); // setCommandName("userBean"); //} //생략 ...... @Override protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { // TODO Auto-generated method stub //command객체를 형변환 후 사용 UserBean userBean = (UserBean)command; //필요한 로직을 처리 System.out.println(userBean.toString()); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("viewName"); modelAndView.addObject("attributeName", "attributeValue"); return modelAndView; } } |
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- HandlerMapping --> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/userCont.sp">userAbstractCommandController</prop> </props> </property> </bean> <!-- ViewResolver --> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.JstlView</value> </property> <property name="prefix"> <value>jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="userAbstractCommandController" class="controller.UserAbstractCommandController"> <property name="commandClass" value="bean.UserBean"></property> <property name="commandName" value="userBean"></property> </bean> </beans> |
▶ 커맨드 클래스와 커맨드 이름을 지정하는 방법은 xml에서 property로 설정하는 방법과
AbstractCommandController를 상속받은 클래스의 생성자를 이용하는 방법이 있다.
//생성자를 이용하는 방법
public UserAbstractCommandController(){
setCommandClass(UserBean.class);
setCommandName("userBean");
}
'프로그램 > Spring 2.5' 카테고리의 다른 글
MultiActionController (0) | 2012.03.10 |
---|---|
SimpleFormController (0) | 2012.03.10 |
AbstractController (0) | 2012.03.07 |
ParameterizableViewController와 UrlFilenameViewController (0) | 2012.03.07 |
Spring Controller의 종류 (0) | 2012.03.07 |