zoukankan      html  css  js  c++  java
  • 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顶部

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/leeSmall/p/7822083.html
Copyright © 2011-2022 走看看