一、自定义视图

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

SpringMVC系列(九)自定义视图、重定向、转发相关推荐

  1. springmvc十七:自定义视图和自定义视图解析器

    自定义视图和视图解析器的步骤: 1).编写自定义的视图解析器,和视图实现类. 自定义的视图要实现View对象 public class MyView implements View{@Override ...

  2. SpringMVC自定义视图 Excel视图和PDF视图

    一.自定义视图-Excel视图 1.Maven依赖 引入POI <dependency><groupId>org.apache.poi</groupId><a ...

  3. Spring Boot 学习系列(05)—自定义视图解析规则

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 自定义视图解析 在默认情况下Spring Boot 的MVC框架使用的视图解析ViewResolver类是C ...

  4. SpringMVC(一)视图解析器

    springMVC是一个基于spring的一个框架,实际上 就是spring的一个模块,专门做web开发. 是servlet的一个升级. web开发的底层是servlet,框架是再servlet基础上 ...

  5. springmvc学习笔记二:重定向,拦截器,参数绑定

    springmvc学习笔记二:重定向,拦截器,参数绑定 Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加mo ...

  6. Android自定义视图四:定制onMeasure强制显示为方形

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

  7. JAVA面试常考系列九

    转载自 JAVA面试常考系列九 题目一 RMI架构层的结构是如何组成的? RMI体系结构由三层组成,分别是: 存根和骨架层(Stub and Skeleton Layer) 远程引用层(Remote ...

  8. 视图添加字段_使用ExploreByTouchHelper辅助类为自定义视图添加虚拟视图

    在安卓开发过程中,为了视觉和功能的需要开发者经常会使用自定义视图 大多数的自定义视图是组合现有的控件来完成特定的功能 但是,有一种自定义视图是通过画笔在画布上画出自定义的子视图的,例如日期控件,颜色选 ...

  9. Android自定义视图二:如何绘制内容

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

最新文章

  1. mysql blob 比较_MySQL下,text 、blob的比较
  2. CentOS安装Pure-FTPd+MySQL
  3. 知识管理系列---3.程序实现
  4. matlab中方差直方图,如何规范直方图在MATLAB?
  5. Linux namespace之:uts namespace
  6. 颜值爆表!Redis 官方可视化工具来啦,功能真心强大!
  7. python简易发红包_学习python:练习5.简单红包程序
  8. 详解 Blockchain Cuties (区块链萌宠)
  9. 关于ArrayList和Vector区别
  10. 手机图形计算器matlab,Mathlab图形计算器下载
  11. 【C语言作业】一个数如果恰好等于它的因子之和,这个数就称为完整数。例如6的因子为1、2、3,而6=1+2+3,因此6是完数,编程找出1000之内的所有完整数
  12. 版本 87.0.4280.66_iOS 14.2 Beta 2发布,修复闪退与优化改进
  13. 全球首家多语言智能客服上线,这家神秘AI公司有什么秘密武器?
  14. Go、Rust、C++和Zig语言的生产力对比 | Gopher Daily (2021.03.28) ʕ◔ϖ◔ʔ
  15. unity3d 挂载脚本_Unity3D 全局脚本
  16. 表情识别------CNN训练fer2013数据集
  17. Halcon 图形窗口显示文本
  18. Gradle 7.4 包上传私服
  19. tesseract::tesseractAPI::setVariable()参数列表
  20. OpenCV4教程——4.1 窗口相关操作

热门文章

  1. 在react里写原生js_从零开始使用react+antd搭建项目
  2. 【Django】毕设学习笔记(六)
  3. 怎么重新启动协议服务器,如何启用或禁用服务器网络协议 (SQL Server PowerShell)
  4. Android访问瓦片地图 费流量,瓦片地图服务在线资源访问总结
  5. android 组件化_你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转...
  6. python消息中间件activemq_消息中间件ActiveMQ和JMS基础
  7. python正则表达式代码_python正则表达式的使用(实验代码)
  8. android访问静态内部类,Java 内部类详解
  9. mysql 去重计算公式_mysql多字段去重,并计数
  10. 工作分流是什么意思_【嘉陵特装要闻】重庆嘉陵召开持续推进职工分流安置工作布置会...