手册

目录

视图(View)

收藏485

阅读11891

更新时间2022-04-11

WebMVC模块支持多种视图技术,包括JSP、Freemarker、Velocity、Text、HTML、JSON、Binary、Forward、Redirect、HttpStatus等,也可以通过IView接口扩展实现自定义视图;

控制器视图的表示方法
  • 通过返回IView接口类型;
  • 通过字符串表达一种视图类型;
  • 无返回值或返回值为空,将使用当前RequestMapping路径对应的JspView视图;
视图文件路径配置

控制器视图文件基础路径,必须是以 '/' 开始和结尾,默认值为/WEB-INF/templates/;

  ymp.configs.webmvc.base_view_path=/WEB-INF/templates/
视图对象操作示例

视图文件可以省略扩展名称,通过IView接口可以直接设置请求参数和内容类型;

  // 通过View对象创建视图对象
  IView _view = View.jspView("/demo/test")
          .addAttribute("attr1", "value")
          .addAttribute("attr2", 2)
          .addHeader("head", "value")
          .setContentType(Type.ContentType.HTML.getContentType());

  // 直接创建视图对象
  _view = new JspView("/demo/test");

  // 下面三种方式的结果是一样的,使用请求路径对应的视图文件返回
  _view = View.jspView();
  _view = JspView.bind();
  _view = new JspView();
WebMVC模块提供的视图

JspView:JSP视图;

  View.jspView("/demo/test.jsp");
  // = "jsp:/demo/test"

FreemarkerView:Freemarker视图;

  View.freemarkerView("/demo/test.ftl");
  // = "freemarker:/demo/test"

VelocityView:Velocity视图;

  View.velocityView("/demo/test.vm");
  // = "velocity:/demo/test"

TextView:文本视图;

  View.textView("Hi, YMPer!");
  // = "text:Hi, YMPer!"

HtmlView:HTML文件内容视图;

  View.htmlView("

Hi, YMPer!

");   // = "html:

Hi, YMPer!

"

JsonView:JSON视图;

  // 直接传递对象
  User _user = new User();
  user.setId("...");
  ...
  View.jsonView(_user);

  // 传递JSON字符串
  View.jsonView("{id:\"...\", ...}");
  // = "json:{id:\"...\", ...}"

BinaryView:二进制数据流视图;

  // 下载文件,并重新指定文件名称
  View.binaryView(new File("/temp/demo.txt"))
          .useAttachment("测试文本.txt");
  // = "binary:/temp/demo.txt:测试文本.txt"

若不指定文件名称,则回应头中将不包含 "attachment;filename=xxx"

ForwardView:请求转发视图;

  View.forwardView("/demo/test");
  // = "forward:/demo/test"

RedirectView:重定向视图;

  View.redirectView("/demo/test");
  // = "redirect:/demo/test"

HttpStatusView:HTTP状态视图

  View.httpStatusView(404);
  // = "http_status:404"

  View.httpStatusView(500, "系统忙, 请稍后再试...");
  // = "http_status:500:系统忙, 请稍后再试..."

NullView:空视图;

  View.nullView();

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号