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

1、自定義視圖

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

 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 解析器: 使用自定義視圖的名字來解析視圖java

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.javaweb

 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編寫測試連接spring

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

 

5. 效果圖mvc

2、重定向/轉發

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

• 若是返回的字符串中帶 forward: 或 redirect: 前綴時,SpringMVC 會對他們進行特殊處理:將 forward: 和redirect: 當成指示符,其後的字符串做爲 URL 來處理jsp

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

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

1. 編寫handle類RedirectForwardTest.javacode

 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頂部

相關文章
相關標籤/搜索