我是Spring MVC的初學者。我不清楚處理器適配器。什麼是處理器適配器,什麼時候使用適配器?Spring mvc中的Handler適配器是什麼?
回答
開始here看看是否有幫助;如果沒有,請提出更具體的問題。另外,Spring文檔的this section討論了默認適配器以及它們與註釋配置的關係。
簡而言之,處理程序適配器決定調用哪個控制器(和方法)來請求。
A HandlerMapping只是將方法映射到URL。大多數初學者不直接使用這個對象,而是使用RequestMapping來代替。映射方法的返回類型(通常)決定了SpringMVC將用於呈現響應的視圖。
例如,下面的RequestMapping將產生GET請求的HandlerMapping爲「/」或「/家」來調用這個方法:
@RequestMapping(value={"/", "/home"}, method=RequestMethod.GET)
public String getHome() {
return "homepage";
}
該方法返回一個視圖的字符串名稱,這將通常會被解析爲「/WEB-INF/views/homepage.jsp」(但這取決於您的ViewResolver當然)
剛開始時,您可以添加不同的對象,您可能需要將其作爲參數添加到您的方法(如Locale,HttpServletRequest等)。有關更多信息,請參閱RequestMapping javadoc。
他問了一下HandlerAdapter,你解釋了HandlerMapping –
A HandlerMapping
將方法映射到URL,因此DispatcherServlet
知道應該由特定請求調用哪個方法。然後DispatcherServlet
使用HandlerAdapter
來調用該方法。
爲什麼DispatcherServlet不直接調用方法?
因爲有許多方法來調用一個方法,像註釋,XML等HandlerAdapter
脫夫婦DispatcherServlet
和調用的操作。
您可以在HandlerAdapter中找到Adapter,並且該部分名稱來自Adapter模式。適配器就像是兩個對象之間的橋樑,而HandlerAdapter是處理程序對象和調度程序servlet之間的橋樑。你可以從Spring文檔中的HandlerAdapter源代碼中看到,有一個方法,ModelAndView返回類型的句柄方法。每個HandlerAdapter都會實現此方法來將HttpServletRequest和HttpServletResponse委託給處理程序對象,以便處理程序對象將使用這些HttpServletRequest/Response執行應用程序邏輯。
public interface HandlerAdapter {
//Check if controller is supported
boolean supports(Object handler);
//handle request
ModelAndView handle(HttpServletRequest rqst,
HttpServletResponse rsp,
Object handler) throws Exception;
此應用程序邏輯執行產生模型和視圖。該視圖可以以視圖名稱String或View對象的形式出現。該模型保存將用於呈現視圖的數據。 HandlerAdapter將在ModelAndView對象中包裝模型和視圖。處理ModelAndView對象是調度程序servlet作業。
調度程序servlet不知道處理程序對象並從直接處理應用程序邏輯中解脫出來。 Handler對象還可以將模型和視圖轉換爲ModelAndView對象,因爲HandlerAdapter會完成轉換作業。
- 1. Spring MVC中的Controller和Handler有什麼區別?
- 2. 什麼是Atypon適配器?
- 3. 什麼是適配器?
- 4. 什麼是Spring入站通道適配器的最大值?
- 5. 什麼是中介適配器?
- 6. bean對象的適配器是什麼?
- 7. 什麼是Spring MVC中的@ModelAttribute?
- 8. 什麼是「垃圾適配器模式」?
- 9. 什麼是虛擬適配器
- 10. 什麼是使定義適配器
- 11. 什麼是適配器對象模式?
- 12. 什麼是雙向適配器模式
- 13. Spring MVC - 配置:找不到元素[Default-servlet-handler]的BeanDefinitionParser
- 14. 如何在Spring中配置jax-ws Handler?
- 15. Spring MVC的:什麼是PARAMS分離
- 16. JSF與Spring MVC的優點是什麼?
- 17. 「typedef void(* __ handler)(int)」的含義是什麼?
- 18. HANDLER OPEN/READ/CLOSE的用例是什麼?
- 19. 爲什麼Spring/Flex/BlazeDS Messaging服務適配器未被調用?
- 20. Spring MVC中沒有適配器,用於處理
- 21. ListView適配器中`convertView`的用途是什麼?
- 22. 在Worklight適配器中解析XML的方法是什麼?
- 23. Spring MVC什麼是服務組件?
- 24. Spring MVC - 什麼是url路徑信息?
- 25. 適配器模式適配器應使用什麼類名稱?
- 26. 是什麼@Transaction註釋Spring MVC中,什麼是它的主要目的
- 27. Spring MVC控制器發回jQuery get/post調用的是什麼?
- 28. 什麼是ASP.NET MVC不適合?
- 29. 什麼是Spring中的JavaConfig?
- 30. 爲什麼我的Pageable API不適用於Spring MVC?
鏈接已損壞。 – Vishnu
@Vishnu我估計六年內會發生什麼變化。 –