您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用springmvc配置視圖解析器和重定向,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
看圖
第一步:需要在springmvc.xml配置
<!-- 配置SpringMVC的視圖解析器: 配置前綴和后綴 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置視圖跳轉的前綴 --> <property name="prefix" value="/WEB-INF/view/"/> <!-- 配置視圖跳轉的后綴 --> <property name="suffix" value=".jsp"/> </bean>
第二步:配置視圖解析器后的controller代碼 Controller方法返回字符串表示邏輯視圖名,通過視圖解析器解析為物理視圖地址。 此時默認的物理視圖地址為:視圖前綴+返回值+視圖后綴
/* * 方法返回ModelAndView 方式 * ModelAndView * Model : 模型,數據 * View :視圖 * 將需要共享的數據也跳轉的視圖封裝到ModelAndView對象中,方法直接返回即可 * * 默認只能使用請求轉發 */ @RequestMapping("/method2") public ModelAndView method2() { ModelAndView mv = new ModelAndView(); //共享數據 mv.addObject("username", "莉莉"); //設置視圖地址 //配置視圖解析器前后綴之前 //mv.setViewName("/WEB-INF/view/hello.jsp"); //配置視圖解析器前后綴之后 mv.setViewName("hello"); return mv; } /* * 方法返回String 字符串方式 * * 方法返回的字符就是要跳轉的地址 * * 在方法中注入一個Model 對象,在Model中共享數據 * * 默認使用請求轉發 */ @RequestMapping("/method3") public String method3(Model m) { System.out.println(m.getClass().getName()); //共享數據 m.addAttribute("username", "吉姆"); //配置視圖解析器前后綴之前 //return "/WEB-INF/view/response.jsp"; //配置視圖解析器前后綴之后 return "response"; }
如果直接使用視圖解析器的配置開發,那么必須保證視圖解析器前綴目錄下面有對應的頁面文件才能跳轉,否則報錯
默認頁面跳轉也只能使用請求轉發跳轉,不能使用重定向
需要解決問題: 除了使用視圖解析器對應規則的開發,用戶還得自定義跳轉方式,和自定義跳轉頁面 方案: 使用視圖解析器的 請求轉發和重定向配置,可以打破默認的規則
public static final String REDIRECT_URL_PREFIX = "redirect:"; public static final String FORWARD_URL_PREFIX = "forward:";
/* * * 問題1:上述兩種方法默認只能進行請求轉發跳轉,如何進行重定向跳轉? * 問題2: 跳轉的頁面永遠只能按照視圖解析的前后綴路徑放,如何頁面放在其他目錄下面也能跳轉 * * 解決方案:使用視圖解析器中自定義的頁面跳轉功能(使用這種,只適用返回String字符串的方式) * 在返回的字符串前面加上前綴 * 重定向 * redired:跳轉的頁面 * 請求轉發 * forward:要跳轉的頁面 * * */ //自定義請求轉發頁面(打破默認的視圖解析器前后綴規則跳轉的頁面) @RequestMapping("/method4") public String method4(Model m) { m.addAttribute("username", "韓梅梅"); return "forward:/WEB-INF/user_list.jsp"; }
//自定義重定向 @RequestMapping("/method5") public String method5() { return "redirect:http://www.jd.com"; }
<!-- jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> <property name="viewNames" value="*"/> <!-- 模板優先級別 --> <property name="order" value="1"></property> </bean> <!-- html --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/html/" /> <property name="suffix" value=".html" /> <property name="viewNames" value="html*"/> <!-- 模板優先級別 --> <property name="order" value="0"></property> </bean>
@Controller @Scope("prototype") @RequestMapping("/viewResolver") public class ViewResolverController { @RequestMapping("/t1") public String t1() { return "index";// webinfo/jsp/index } @RequestMapping("/t2") public String t2() { return "htmlindex";// webinfo/html/index } }
看完了這篇文章,相信你對“如何使用springmvc配置視圖解析器和重定向”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。