SpringMVC系列(九)自定義視圖、重定向、轉發


一、自定義視圖

1. 自定義一個視圖HelloView.java,使用@Component注解交給Spring IOC容器處理

 1 package com.study.springmvc.views;
 2 
 3 import java.util.Date;
 4 import java.util.Map;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 import org.springframework.stereotype.Component;
10 import org.springframework.web.servlet.View;
11 /**
12  * 自定義視圖:
13  * 把定義好的視圖交給Spring IOC容器處理
14  * @author lgs
15  *
16  */
17 @Component
18 public class HelloView implements View{
19 
20     public String getContentType() {
21         return "text/html";
22     }
23 
24     public void render(Map<String, ?> model, HttpServletRequest request,
25             HttpServletResponse response) throws Exception {
26         response.getWriter().print("hello view, time: " + new Date());
27     }
28 
29 }

2. 在springmvc.xml里面配置視圖  BeanNameViewResolver 解析器: 使用自定義視圖的名字來解析視圖

1 <!-- 配置視圖  BeanNameViewResolver 解析器: 使用自定義視圖的名字來解析視圖 -->
2     <!-- 通過 order 屬性來定義視圖解析器的優先級, order 值越小優先級越高 -->
3     <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
4         <property name="order" value="100"></property>
5     </bean>

3.編寫handle類SelfDefineViewTest.java

 1 package com.study.springmvc.handlers;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 
 6 /**
 7  * 自定義視圖測試
 8  * @author lgs
 9  *
10  */
11 @RequestMapping("/selfDefineViewTest")
12 @Controller
13 public class SelfDefineViewTest {
14 
15     @RequestMapping("/testView")
16     public String testView(){
17         System.out.println("testView");
18         return "helloView";
19     }
20 }

4. 在index.jsp編寫測試鏈接

1 <!--自定義視圖測試 begin  -->
2 <a href="selfDefineViewTest/testView">Test View</a>
3 <br><br>
4 <!--自定義視圖測試 end  -->

 

5. 效果圖

二、重定向/轉發

• 一般情況下,控制器方法返回字符串類型的值會被當成邏輯視圖名處理

• 如果返回的字符串中帶 forward: 或 redirect: 前綴時,SpringMVC 會對他們進行特殊處理:將 forward: 和redirect: 當成指示符,其后的字符串作為 URL 來處理

– redirect:success.jsp:會完成一個到 success.jsp 的重定向的操作

– forward:success.jsp:會完成一個到 success.jsp 的轉發操作

1. 編寫handle類RedirectForwardTest.java

 1 package com.study.springmvc.handlers;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 
 6 /**
 7  * 重定向和轉發
 8  * 
 9  * @author lgs
10  *
11  */
12 @RequestMapping("/redirectForwardTest")
13 @Controller
14 public class RedirectForwardTest {
15 
16 
17     @RequestMapping("/testRedirect")
18     public String testRedirect() {
19         System.out.println("testRedirect");
20         return "redirect:/index.jsp";
21     }
22 }

 

2.  在index.jsp編寫測試鏈接

1 <!-- 重定向和轉發 begin  -->
2 <a href="redirectForwardTest/testRedirect">Test Redirect</a>
3 <!-- 重定向和轉發 end  -->

 

3.點擊鏈接以后重定向到index.jsp頂部


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM