Spring MVC 控制器的實現(xiàn)

2018-07-26 14:01 更新

...Spring implements a controller in a very abstract way, which enables you to create a wide variety of controllers.

控制器作為應用程序邏輯的處理入口,它會負責去調(diào)用你已經(jīng)實現(xiàn)的一些服務。通常,一個控制器會接收并解析用戶的請求,然后把它轉(zhuǎn)換成一個模型交給視圖,由視圖渲染出頁面最終呈現(xiàn)給用戶。Spring對控制器的定義非常寬松,這意味著你在實現(xiàn)控制器時非常自由。

Spring 2.5以后引入了基于注解的編程模型,你可以在你的控制器實現(xiàn)上添加@RequestMapping、@RequestParam、@ModelAttribute等注解。注解特性既支持基于Servlet的MVC,也可支持基于Portlet的MVC。通過此種方式實現(xiàn)的控制器既無需繼承某個特定的基類,也無需實現(xiàn)某些特定的接口。而且,它通常也不會直接依賴于Servlet或Portlet的API來進行編程,不過你仍然可以很容易地獲取Servlet或Portlet相關的變量、特性和設施等。

Spring項目的官方Github上你可以找到許多項目,它們對本節(jié)所述以后的注解支持提供了進一步增強,比如說MvcShowcase,MvcAjax,MvcBasic,PetClinic,PetCare等。

@Controller
public class HelloWorldController {

    @RequestMapping("/helloWorld")
    public String helloWorld(Model model) {
        model.addAttribute("message", "Hello World!");
        return "helloWorld";
    }
}

你可以看到,@Controller注解和@RequestMapping注解支持多樣的方法名和方法簽名。在上面這個例子中,方法接受一個Model類型的參數(shù)并返回一個字符串String類型的視圖名。但事實上,方法所支持的參數(shù)和返回值有非常多的選擇,這個我們在本小節(jié)的后面部分會提及。@Controller@RequestMapping及其他的一些注解,共同構(gòu)成了Spring MVC框架的基本實現(xiàn)。本節(jié)將詳細地介紹這些注解,以及它們在一個Servlet環(huán)境下最常被使用到的一些場景。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號