springMVC controller配置方式總結

來源:互聯網
上載者:User

標籤:處理   int   end   welcome   new   message   scan   mvc   ext   

第一種:不配置controller 的bean。(註解的方式)

在dispatch-servlet.xml中,在beans節點下配置context:component-scan節點

<!-- 啟用spring註解--><context:component-scan base-package="com.loong.controller" />

這種方式需要在Controller對象上使用@RequestMapping("hello")指定方法對應處理的路徑,比如一下兩種方式:

舉例1:url:http://localhost:8080/demo1/welcome/hello

@Controller @RequestMapping("/welcome") public class HelloWorldController {     @RequestMapping(value="/hello" ,method=RequestMethod.GET)     public String printWelcome(ModelMap model){         model.addAttribute("message" ,"Spring 3 MVC Hello World");         return "hello";     } }

舉例2:url:http://localhost:8080/demo1/home

@Controller public class HomeController {    @RequestMapping("home")     public String home(){         return "home";     }}

  

第二種方式配置controller的bean(url匹配bean)
在xxx-servlet.xml中

<context:component-scan base-package="com.controller" /> <!-- HandlerMapping --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <!-- HandlerAdapter --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><!-- 處理器 --><bean name="/hello" class="com.controller.HelloWorldController" />

BeanNameUrlHandlerMapping:表示將請求的URL和Bean名字映射,如URL為 “上下文/hello”,則Spring設定檔必須有一個名字為“/hello”的Bean,上下文預設忽略。

SimpleControllerHandlerAdapter:表示所有實現了org.springframework.web.servlet.mvc.Controller介面的Bean可以作為Spring Web MVC中的處理器。如果需要其他類型的處理器可以通過實現HadlerAdapter來解決。

提示:關於寫不寫HandlerMapping 和HandlerAdapter的問題,參考:
http://www.imooc.com/article/4293

這種情況Controller類要實現Controller介面:

public class HelloWorldController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {// TODO Auto-generated method stub    ModelAndView mv = new ModelAndView();    mv.addObject("message", "HelloWorld");    mv.setViewName("hello");    return mv;}}

  

第三種配置Controller中bean的方式,使用一個統一配置集合,對各個URL對應的Controller做關係映射

在xxx-servlet中

<bean id="loginController" class="com.msm2.controller.LoginController" /><bean id="mainController" class="com.msm2.controller.MainController" /><bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="login">loginController</prop><prop key="userLogin">mainController</prop></props></property></bean>

在Controller類中
url:http://localhost:8080/msm2/login

@Controllerpublic class LoginController extends AbstractController{ @Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {     ModelAndView mav = new ModelAndView();    mav.addObject("login");    return mav;}}

 

原文地址:http://www.cnblogs.com/ysloong/p/6388962.html

springMVC controller配置方式總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.