您好,登錄后才能下訂單哦!
這篇文章主要介紹“springmvc處理器映射器和適配器怎么配置”,在日常操作中,相信很多人在springmvc處理器映射器和適配器怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”springmvc處理器映射器和適配器怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
(1)非注解的處理器映射器和適配器
處理器映射器
第一種非注解的映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
另一種非注解的映射器
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 配置Handler --> <bean name="/queryItems.action"
class="com.amuxia.controller.ItemsController" /> <!-- 配置另外一個Handler -->
<!--
處理器映射器 將bean的name作為url進行查找,
需要在配置Handler時指定beanname(就是url)
所有的映射器都實現 HandlerMapping接口。
--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
也可以多個多個映射器并存,由DispatcherServlet(前端控制器)指定URL被哪個映射器處理,如下:
<!-- 配置Handler -->
<bean id="itemsController" name="/queryItems.action"
class="com.amuxia.ItemsController"/>
<!--
處理器映射器 將bean的name作為url進行查找,
需要在配置Handler時指定URL
-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 簡單url映射-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 對 itemsController進行url映射-->
<prop key="/queryItems1.action">items1</prop>
<prop key="/queryItems2.action">items2</prop>
</props>
</property>
</bean>
處理器適配器
第一種非注解的適配器
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
(要求編寫的Handler實現Controller接口)
public class ItemsController implements Controller{
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("view/list");
modelAndView.addObject("name", "張三");
return modelAndView;
}
}
另一種非注解的適配器
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
(要求編寫的Handler實現HttpRequestHandler接口)
public class ItemsController implements HttpRequestHandler{
public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws ServletException, IOException {
List<Items> itemsList = new ArrayList<Items>();
Items items = new Items();
items.setName("阿木俠");
itemsList.add(items);
httpServletRequest.setAttribute("list",itemsList);
httpServletRequest.getRequestDispatcher("view/list").forward(httpServletRequest,httpServletResponse);
}
}
這里可以使用response設置響應格式,字符編碼等
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
(2)基于注解的處理器映射器和適配器
注解映射器
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
注解適配器
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
注解的映射器和注解的適配器必須配對使用,spring對其有一個更簡化的配置,可以使用下面的這段代碼代替上面的兩段配置
<mvc:annotation-driven></mvc:annotation-driven>
使用注解的映射器和注解的適配器,在具體的Java代碼實現上有很大的不同,不再需要實現特定的接口,代碼風格更加簡化。
@Controllerpublic class ItemsController{
@RequestMapping("/items")
public ModelAndView items() throws Exception{
List<Items> itemsList = new ArrayList<Items>();
Items items = new Items();
items.setName("阿木俠");
itemsList.add(items);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("list",itemsList);
modelAndView.setViewName("view/list"); return modelAndView;
}
}
這里使用到了兩個注解,也是最最基本的兩個注解
@Controller修飾類,用來標識它是一個控制器。
@RequestMapping("")修飾方法或者類,這里表示實現對items方法和url進行映射,一個方法對應一個url。注意這里@RequestMapping("")中的名稱一般和方法同名,但不是必須。
最后,還需要在spring容器中加載Handler,指定掃描controller。
<bean class="com.amuxia.controller.ItemsController"></bean>
這里需要對用到的所有的控制器類都需要在spring容器中加載Handler,但我們在實際開發中,所有的Controller一般都會放在某個包下,所以可以使用掃描組件掃描Controller包文件
<context:component-scan base-package="com.amuxia.controller"></context:component-scan>
擴展
注解的處理器映射器和適配器在spring3.1之前和之后使用略有不同,現在一般使用spring3.1之后的,但對之前的需要有一個大概的認識,避免在舊項目中見到之后一臉懵逼。
在spring3.1之前使用(注解映射器)
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
在spring3.1之后使用(注解映射器)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
在spring3.1之前使用(注解適配器)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
在spring3.1之后使用(注解適配器)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
到此,關于“springmvc處理器映射器和適配器怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。