




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第SpringBoot中處理的轉(zhuǎn)發(fā)與重定向方式目錄一、返回ModelAndView時(shí)的請求轉(zhuǎn)發(fā)1:轉(zhuǎn)發(fā)到頁面2:轉(zhuǎn)發(fā)到controller二、返回ModelAndView時(shí)的重定向:發(fā)送的get請求,參數(shù)在url后面1.重定向到頁面2,重定向到controller返回String類型的轉(zhuǎn)發(fā)返回String類型的重定向返回void的重定向和轉(zhuǎn)發(fā)轉(zhuǎn)發(fā):一次請求,服務(wù)器內(nèi)部調(diào)用另外的組件處理,request和response可以共用,有限制性,只能轉(zhuǎn)發(fā)到本應(yīng)用中的某些資源,頁面或者controller請求可以訪問WEB-INF目錄下面的頁面
重定向:兩次請求,地址會改變,request和response不能共用,不能直接訪問WEB-INF下面的資源,
根據(jù)所要跳轉(zhuǎn)的資源,可以分為跳轉(zhuǎn)到頁面或者跳轉(zhuǎn)到其他controller
一、返回ModelAndView時(shí)的請求轉(zhuǎn)發(fā)
當(dāng)controller中的方法返回ModelAndView的時(shí)候,默認(rèn)是使用的轉(zhuǎn)發(fā)。當(dāng)然,我們也可以顯式的指出要使用轉(zhuǎn)發(fā),此時(shí),需在setViewName()指定的視圖前添加forward:,此時(shí)springmvc.xml文件中配置的視圖解析器將會失效,即需要在setViewName中寫上jsp相對于項(xiàng)目根的路徑。
1:轉(zhuǎn)發(fā)到頁面
/**
*轉(zhuǎn)發(fā)返回ModelAndView對象
*@return
*@throwsException
@RequestMapping("/forwardMAV.do")
publicModelAndViewforwardMAV()throwsException{
ModelAndViewmv=newModelAndView();
mv.addObject("type","轉(zhuǎn)發(fā)返回ModelAndView");
//默認(rèn)情況下使用轉(zhuǎn)發(fā)
//mv.setViewName("/result");
//手動顯式指定使用轉(zhuǎn)發(fā),此時(shí)springmvc.xml配置文件中的視圖解析器將會失效
mv.setViewName("forward:/jsp/result.jsp");
returnmv;
}
需要在webapp目錄下添加jsp/result.jsp文件:
2:轉(zhuǎn)發(fā)到controller
使用轉(zhuǎn)發(fā)跳轉(zhuǎn)到其他controller中
@RequestMapping("/forwardMAV.do")
publicModelAndViewforwardMAV()throwsException{
ModelAndViewmv=newModelAndView();
//手動顯式指定使用轉(zhuǎn)發(fā),此時(shí)springmvc.xml配置文件中的視圖解析器將會失效
mv.setViewName("forward:other.do");
returnmv;
}
創(chuàng)建OtherController:
/**
*被跳轉(zhuǎn)的controller
@Controller
publicclassOtherController{
*被跳轉(zhuǎn)的controller返回result.jsp
*@return
*@throwsException
@RequestMapping("/other.do")
publicModelAndViewother()throwsException{
ModelAndViewmv=newModelAndView();
mv.addObject("type","被跳轉(zhuǎn)的controller");
mv.setViewName("result");
returnmv;
}
二、返回ModelAndView時(shí)的重定向:發(fā)送的get請求,參數(shù)在url后面
如果要實(shí)現(xiàn)重定向,則需在setViewName()指定的視圖前添加redirect:,此時(shí)springmvc.xml文件中配置的視圖解析器將會失效,即需要在setViewName中寫上jsp相對于項(xiàng)目根的路徑。重定向的方式在request域中的數(shù)據(jù)會失效,此時(shí)可以通過ModelAndView來傳遞數(shù)據(jù),但是只能傳遞基本數(shù)據(jù)類型和String類型,因?yàn)閟pringmvc會將傳遞的數(shù)據(jù)以請求參數(shù)的方式放到url的后面,此時(shí)任何數(shù)據(jù)類型都會被轉(zhuǎn)換為普通的字符串。另外,我們在jsp中取值的時(shí)候需要使用EL表達(dá)式中的請求參數(shù)param讀取。
除此之外,你還可以將數(shù)據(jù)放到HttpSession域中,這里就不演示了。
1.重定向到頁面
/**
*重定向返回ModelAndView對象
*@return
*@throwsException
@RequestMapping("/redirectMAV.do")
publicModelAndViewredirectMAV(Schoolschool,Stringname)throwsException{
ModelAndViewmv=newModelAndView();
//在重定向中可以使用ModelAndView傳遞數(shù)據(jù),但是只能傳遞基本數(shù)據(jù)類型和String類型
mv.addObject("school",school);
mv.addObject("name",name);
//使用重定向,此時(shí)springmvc.xml配置文件中的視圖解析器將會失效
mv.setViewName("redirect:/jsp/result.jsp");
returnmv;
result.jsp
%@pagecontentType="text/html;charset=UTF-8"language="java"%
html
head
titleTitle/title
/head
body
${school.schoolName}br
${param.school.address}br
${}
/body
/html
2,重定向到controller
在重定向到其他controller中的方法的時(shí)候,只要保證兩者的參數(shù)名一致即可實(shí)現(xiàn)數(shù)據(jù)的傳遞。
@RequestMapping("/redirectMAV.do")
publicModelAndViewredirectMAV(Schoolschool,Stringname)throwsException{
ModelAndViewmv=newModelAndView();
mv.addObject("name",name);
mv.addObject("schoolName",school.getSchoolName());
mv.addObject("address",school.getAddress());
System.out.println(school.getAddress());
//使用重定向,此時(shí)springmvc.xml配置文件中的視圖解析器將會失效
mv.setViewName("redirect:other.do");
returnmv;
}
RequestMapping("/other.do")
publicModelAndViewother(Stringname,Schoolschool)throwsException{
ModelAndViewmv=newModelAndView();
//單個(gè)接收
mv.addObject("name",name);
//通過javabean對象接收
mv.addObject("school",school);
System.out.println(school.getAddress());
mv.setViewName("result");
returnmv;
}
返回String類型的轉(zhuǎn)發(fā)
這個(gè)整體上跟之前ModelAndView差不多,只不過在controller中的方法參數(shù)會被自動的放到request域中。
@RequestMapping("/forwardStr.do")
publicStringforwardStr(Schoolschool)throwsException{
//默認(rèn)會使用轉(zhuǎn)發(fā)
//return"result";
//顯式的使用轉(zhuǎn)發(fā)
return"forward:/jsp/result.jsp";
}
result.jsp中直接通過request域獲取數(shù)據(jù),以下兩種方式均可。
${requestScope.school.schoolName}
${school.schoolName}
返回String類型的重定向
這里要想傳遞數(shù)據(jù)的話,需要使用之前介紹過的Model實(shí)現(xiàn),這里的數(shù)據(jù)同樣會放在url中,所以只能傳遞基本數(shù)據(jù)類型和String類型。
@RequestMapping("/redirectStr.do")
publicStringredirectStr(Schoolschool,Modelmodel)throwsException{
//這里的數(shù)據(jù)同樣會放在url中,所以只能傳遞基本數(shù)據(jù)類型和String類型
model.addAttribute("schoolName",school.getSchoolName());
model.addAttribute("address",school.getAddress());
return"redirect:/jsp/result.jsp";
}
result.jsp中需要通過param來獲取數(shù)據(jù):
${param.schoolName}
${param.address}
這里轉(zhuǎn)發(fā)和重定向跟之前返回ModelAndView的時(shí)候一樣,所以就不演示了。
返回void的重定向和轉(zhuǎn)發(fā)
當(dāng)方法沒有返回值即返回void的時(shí)候,重定向和轉(zhuǎn)發(fā)操作都是使用的servlet的api,就是:
轉(zhuǎn)發(fā):
request.getRequestDispatcher("/jsp/result.jsp").forward(request,response);
重定向:
response.sendRedirect(request.getContextPath()+"/jsp/result.jsp");
***************************************
@RequestMapping(value="/aa",method=RequestMethod.GET)
publicModelAndViewaaa(HttpServletRequestrequest){
Stringuser
=
request.getParameter("username");
ModelAndView
mv=new
ModelAndView("xyxyh/declaration/delcleView");
mv.addObject("pas","bb"):
returnmv
}
@RequestMapping(value="/aa",method=RequestMethod.GET)
pub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第14課 光榮的少先隊(duì) 課件-2024-2025學(xué)年道德與法治一年級下冊統(tǒng)編版
- 酒店培訓(xùn)感想心得體會模版
- 醫(yī)院庭院綠化的生態(tài)效益與社會價(jià)值
- 周圍型肺癌的臨床護(hù)理
- 黃綠卡通動物交通安全模板
- 醫(yī)療大數(shù)據(jù)與健康保險(xiǎn)的聯(lián)動發(fā)展
- 嬰兒臍疝的臨床護(hù)理
- 區(qū)塊鏈技術(shù)助力文字作品版權(quán)保護(hù)
- 健身房加設(shè)施合同范例
- 安全管理知識培訓(xùn)
- 高端定制店面管理制度
- 多模態(tài)自適應(yīng)技術(shù)應(yīng)用于鋼材表面缺陷檢測的研究與分析
- 無人機(jī)配送技術(shù)發(fā)展-全面剖析
- 廣東省江門市2025屆高三下學(xué)期一模化學(xué)試題(原卷版+解析版)
- 2025年上半年廣州市海珠區(qū)海幢街道招考康園工療站工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 預(yù)設(shè)理論在人工智能中的應(yīng)用-深度研究
- 2025年春季學(xué)期形勢與政策第二講-中國經(jīng)濟(jì)行穩(wěn)致遠(yuǎn)講稿
- CNAS-CL01:2018 檢測和校準(zhǔn)實(shí)驗(yàn)室能力認(rèn)可準(zhǔn)則
- 人教PEP版英語五年級下冊Recycle 1單元教學(xué)設(shè)計(jì)(2課時(shí)教案)
- 中國產(chǎn)教融合行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報(bào)告(2024-2030版)
- 2025年山西焦煤集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論