@Controller基本註解的控制器

weixin_34236497發表於2017-08-18
  • org.springframework.stereotype.Controller註解型別用於指示Spring類的例項是一個控制器。

  • @Controller註解
    Spring使用描述機制來找到應用程式中所有基於註解的控制器類。

  • 為保證Spring能找到控制器:
    1、SpringMVC配置檔案中:
    <beans
    ...
    xmlns:context="http://www.springframework.org/schema/context"
    ...
    </beans>
    2、<context:comonent-xcan/>中指定控制器類的基本包。

    <context:component-scan base-package="com.lxx.Controller"/>

  • org.springframework.web.bind.annotation.RequestMapping

  • @RequestMapping註解型別對映的URI與方法。

  • 對映一個請求和方法(也可註解控制器類)。@RequestMapping註解的方法將成為一個請求處理方法。註解的value屬性將URI對映到方法。

  • 可在請求處理方法中出現的引數型別:
    1、 javax.servlet.ServletRequest或 javax.servlet.http.HttpServletRequest
    2、 javax.servlet.ServletResponse或 javax.servlet.http.HttpServletResponse
    3、 javax.servlet.http.HttpServletSession
    4、 org.springframework.web.context.request.WebRequest或org.springframework.web.context.request.NativeWebRequest
    5、 java.util.Local
    6、 java.io.InputStream或java.io.Reader
    7、 java.io.OutputStream或java.io.Writer
    8、 java.security.Principal
    9、 HttpEntity<?>
    10、java.util.Map/org.springframework.ui.Model
    11、org.springframework.ui.ModelMap
    12、org.springframework.web.servlet.mvc.support.RedirectAttributes
    13、org.springframework.validation.Errors
    14、org.springframework.validation.BindingResult

org.springframework.ui.Model,不是一個Servlet API型別,而是一包含Map的SpringMVC型別。每次呼叫請求處理方法時,SpringMVC都建立Model物件並將其Map注入到各種物件。

  • 請求處理方法可返回的型別物件:
    1、ModelAndView
    2、Model
    3、Map包含模型的屬性
    4、View
    5、代表邏輯檢視名的String
    6、void
    7、Callable
    8、DeferredResult
    9、提供對Servlet的訪問,以響應HTTP頭部和內容HttpEntry或ResponseEntity物件
    10、其他任意型別,Spring將其視作輸出給View的物件模型。

相關文章