• 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顶部

  • 相关阅读:
    练习JSON
    实现JSON+JDBC的简单操作(以显示对象为例)
    三层架构:表示层-业务逻辑层-数据访问层
    实现json的三个操作(训练JSON)
    实现邮箱验证 简化版
    复习注册表单html和jQuery
    监听器(测试在线人数的)第一种 HttpSessionBindingListener
    Django的中间件
    Django form表单
    Django
  • 原文地址:https://www.cnblogs.com/leeSmall/p/7822083.html
Copyright © 2020-2023  润新知