Spring의 MVC 모듈 코드 상세 정보

SpringMVC의 Controller는 사용자의 요청을 처리하는 데 사용됩니다.Controller는 Struts1의 Action에 해당하며, 그들의 실현 메커니즘, 운행 원리는 모두 유사하다
Controller는 인터페이스로 일반적으로 AbstrcatController를 직접 계승하고handleRequestInternal 방법을 실현한다.handleRequestInternal 방법은 Struts1의 execute 방법에 해당한다

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class CatController extends AbstractController{
	private ICatService catService;
	//setter、getter  
	protected ModelAndView handleRequestInternal(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
		String action =request.getParameter("action");
		if("list".equals(action)){
			return this.list(request,response);
		}
	}
	protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
		List<Cat> catList =catService.listCat();
		request.setAttribute("catList", catList);
		return new ModelAndView("cat/listCat");
	}
}
SpringMVC에는 내장 데이터 패키지가 없으므로 개발자가 직접 데이터 변환 코드를 패키지할 수 있습니다.
SpringMVC의 독특한 점은 뷰 레이어 처리에 있습니다.handleRequestInternal이 Model AndView 객체를 반환하는 것은 JSP 객체에 대한 패키지로 볼 수 있습니다.ModelandIVIew는 JSP 페이지의 경로를 그대로 적용합니다.예를 들어 매개 변수'cat/listCat'은 JSP 경로의 일부일 뿐, 실제 완전한 경로는'WEB-INF/jsp/cat/catList입니다.jsp', 경로 앞뒤 부분은 프로필에 설정된
JSP 경로를 만드는 것 외에 Model AndView는 모델 대상을 View 층으로 직접 전달할 수 있습니다. 예를 들어 newModel AndView("cat/listCat", "cat", cat)를 사용하지 않고 여러 파라미터를 전달할 때 Map을 사용할 수 있습니다.

Map map = newHashMap(); 
map.put("cat",cat); 
map.put("catList",catList); 
return new ModelAndView("cat/listCat",map); 
일반적으로spring-action과 같은 독립된 xml 파일을 사용합니다.xml 웹 관련 구성 요소 전문 설정

<?xml version= "1.0" encoding="UTF-8"?> 
<!DCTYPEbeans PUBLIC "-//SPRING//DTD BEAN//EN" 
 "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans> 
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix"> 
          <value>/WEB-INF/jsp/</value><!-- JSP --> 
       </property> 
       <property name="suffix"> 
          <value>.jsp</value>         <!-- JSP --> 
       </property> 
  
   <!--  URL Mapping--> 
   <bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandleMapping"> 
       <property name="mappings"> 
          <props><!―Controller URL "cat.mvc"--> 
              <prop key="cat.mvc">catController</prop> 
          <props> 
       </property> 
   </bean> 
   <bean id="catController" class="com.clf.spring.CatController"> 
       <property name="catService" ref="catService"></property> 
   </bean> 
</beans> 
  
web.xml  
<context-param><!-- Spring --> 
   <param-name>contextConfigLocation</param-name> 
   <param-value> 
       /WEB-INF/classes/applicationContext.xml, 
       /WEB-INF/classes/spring-action.xml   
   </param-value> 
</context-param> 
  
<listener><!--  Listener Spring --> 
   <listener-class> 
       org.springframework.web.context.ContextLoaderListener 
   </listener-class> 
</listener> 
  
<servlet><!-- spring --> 
   <servlet-name>spring</servlet-name> 
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
   <init-param> 
       <param-name>contextConfigLocation</param-name> 
       <param-value>/WEB-INF/classes/spring-action.xml</param-value> 
   </init-param> 
   <load-on-startup>1</load-on-startup><!--  --> 
</servlet> 
  
<servlet-mapping> 
   <servlet-name> spring</servlet-name> 
   <url>*.mvc</url> 
</servlet-mapping> 
하나의 Controller가 여러 개의 업무 논리를 처리하려면 MultiActionController를 사용할 수 있습니다. 이것은 Struts 1의 DispatchAction과 같습니다. 매개 변수에 따라 서로 다른 요청을 다른 방법으로 나누어 줄 수 있습니다.

import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class CatController extends AbstractController{
	private ICatService catService;
	//setter、getter  
	protected ModelAndView add(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
		…… 
		       return new ModelAndView("cat/addCat");
	}
	protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) throws Exception{
		List<Cat> catList =catService.listCat();
		request.setAttribute("catList", catList);
		return new ModelAndView("cat/listCat");
	}
}
spring-action으로 설정합니다.xml

<bean id="paraMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> 
   <property name="paramName"> 
       <value>action</value><!--  --> 
   </property> 
   <property name="defaultMethodName"> 
       <value>list</value><!--  --> 
   </property> 
</bean> 
  
<bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandleMapping"> 
       <property name="mappings"> 
          <props> 
              <prop key="cat.mvc">catController</prop><!--  "cat.mvc" catController --> 
              <prop key="catMulti.mvc">catMultiController</prop><!--  "catMulti.mvc" catMultiController --> 
          <props> 
       </property> 
   </bean> 
  
   <bean id="catController" class="com.clf.spring.CatMultiController"> 
       <property name="catService" ref="catService"></property> 
   </bean> 
  
   <bean id="catMultiController" class="com.clf.spring.CatController"> 
       <property name="catService" ref="catService"></property> 
   </bean> 
총결산
Spring의 MVC 모듈 코드에 대한 자세한 내용은 여기를 참조하십시오.관심 있는 친구는 본 사이트의 다른 관련 주제를 계속 참고할 수 있습니다. 부족한 점이 있으면 댓글로 지적해 주십시오.

좋은 웹페이지 즐겨찾기