W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
...Spring implements a controller in a very abstract way, which enables you to create a wide variety of controllers.
控制器作為應(yīng)用程序邏輯的處理入口,它會(huì)負(fù)責(zé)去調(diào)用你已經(jīng)實(shí)現(xiàn)的一些服務(wù)。通常,一個(gè)控制器會(huì)接收并解析用戶的請(qǐng)求,然后把它轉(zhuǎn)換成一個(gè)模型交給視圖,由視圖渲染出頁(yè)面最終呈現(xiàn)給用戶。Spring對(duì)控制器的定義非常寬松,這意味著你在實(shí)現(xiàn)控制器時(shí)非常自由。
Spring 2.5以后引入了基于注解的編程模型,你可以在你的控制器實(shí)現(xiàn)上添加@RequestMapping
、@RequestParam
、@ModelAttribute
等注解。注解特性既支持基于Servlet的MVC,也可支持基于Portlet的MVC。通過(guò)此種方式實(shí)現(xiàn)的控制器既無(wú)需繼承某個(gè)特定的基類,也無(wú)需實(shí)現(xiàn)某些特定的接口。而且,它通常也不會(huì)直接依賴于Servlet或Portlet的API來(lái)進(jìn)行編程,不過(guò)你仍然可以很容易地獲取Servlet或Portlet相關(guān)的變量、特性和設(shè)施等。
在Spring項(xiàng)目的官方Github上你可以找到許多項(xiàng)目,它們對(duì)本節(jié)所述以后的注解支持提供了進(jìn)一步增強(qiáng),比如說(shuō)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
注解支持多樣的方法名和方法簽名。在上面這個(gè)例子中,方法接受一個(gè)Model
類型的參數(shù)并返回一個(gè)字符串String
類型的視圖名。但事實(shí)上,方法所支持的參數(shù)和返回值有非常多的選擇,這個(gè)我們?cè)诒拘」?jié)的后面部分會(huì)提及。@Controller
和@RequestMapping
及其他的一些注解,共同構(gòu)成了Spring MVC框架的基本實(shí)現(xiàn)。本節(jié)將詳細(xì)地介紹這些注解,以及它們?cè)谝粋€(gè)Servlet環(huán)境下最常被使用到的一些場(chǎng)景。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: