SpringMVC Handler引數與返回值

2021-10-01 09:32:59 字數 1999 閱讀 3978

url路徑對映 或

value的值是陣列,可以將多個url對映到同乙個方法

窄化請求對映

@controller

請求方法限定

限定get方法,如果通過post訪問則報錯:http status 405 - request method 'post' not supported

限定post方法,如果通過post訪問則報錯:http status 405 - request method 'get' not supported

get和post都可以

返回modelandview

需要方法結束時,定義modelandview,將model和view分別進行設定。

modelandview modelandview = new modelandview();

modelandview.addobject("itemslist", itemslist);

modelandview.setviewname("itemslist.jsp");

return modelandview;

返回void

在controller方法形參上可以定義request和response,使用request或response指定響應結果:

1、使用request轉向頁面:

request.getrequestdispatcher("頁面路徑").forward(request, response);
2、通過response頁面重定向:

response.sendredirect("url") ;
3、也可以通過response指定響應結果,例如響應json資料:

response.setcharacterencoding("utf-8");

response.getwriter().write("json串");

返回string

1、 邏輯檢視位址

controller方法返回字串可以指定邏輯檢視位址,通過視**析器解析為物理檢視位址。

物理檢視位址(jsp路徑)= 字首+邏輯檢視位址+字尾

//handler方法返回邏輯檢視位址

return "items/itemslist";

2、redirect重定向

controller方法返回結果重定向到乙個url位址,瀏覽器位址列中的url會變化。修改提交的request資料無法傳到重定向的位址,因為重定向後重新進行request,request無法共享。

//重定向到queryitem.action位址,request無法帶過去

return "redirect:queryitem.action";

redirect方式相當於「response.sendredirect()」,**後瀏覽器的位址列變為**後的位址,因為**即執行了乙個新的request和response。

由於新發起乙個request原來的引數在**時就不能傳遞到下乙個url,如果要傳引數可以/item/queryitem.action後邊加引數,如下:/item/queryitem?...&...

3、forward**

controller方法執行後繼續執行另乙個controller方法,通過forward進行頁面**,瀏覽器位址列url不變,request可以共享。

//結果**到edititem.action,request可以帶過去

return "forward:edititem.action";

forward方式相當於「request.getrequestdispatcher().forward(request,response)」,**後瀏覽器位址列還是原來的位址。**並沒有執行新的request和response,而是和**前的請求共用乙個request和response。所以**前請求的引數在**後仍然可以讀取到。

SpringMVC 接收與返回引數

使用spring的兩個註解標籤 1 requestparam 當前台用form提交資料時 可以用map 進行接收 requestparam hashmapmap 也可以用 對應的實體類進行接收 資料。如果前台用ajax 這種非同步提交的話 則 data updateform serialize 序列...

引數與返回值

1個 節返回,用al返回 2個位元組返回,用ax返回 4個位元組返回,用eax返回 8個位元組返回返回,用eax edx返回 1 本機尺寸 如果本機是32位的,那麼對32位的資料支援最好,如果是64位的,那麼對64位的支援最好.2 編譯器遵守了這個規則 char型別或者short型別的引數不但沒有節...

springmvc返回引數

1 通過原生的api進行引數返回。2 map 方法上設定map引數。然後為這個map新增資料。這個map中的資料會放在request域中。3 model 同樣的,還是在方法上設定model的引數。然後呼叫model的方法addattribute方法,即可把引數放在request域中。使用方法與map...