SpringMVC 视图解析器 方法返回值 异常处理器

简介: SpringMVC 视图解析器 方法返回值 异常处理器

视图解析器


什么是视图解析器


  • SpringMVC视图解析器主要的作用是将 物理视图 转换成 逻辑视图
  • 返回jsp return "/pages/list.jsp" 称为物理视图
  • 把相同的前缀和后缀抽取出来 拼接在一起

image.png  

配置视图解析器


WebMvcConfigurer配置类其实是Spring内部的一种配置方式 采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制

  1. 实现WebMvcConfigurer接口
  2. 重写configureViewResolvers方法
  3. registry.jsp(“前缀”,“后缀”);配置视图前缀和后缀
@Configuration
@ComponentScan(basePackages="com.czxy.mvc.controller")
@EnableWebMvc
public class MvcConfiguration implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/pages/",".jsp");
    }
}

 

Controller的使用


返回逻辑视图名

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/selectAll2")
    public String selectAll2() {
        return "list";
    }
}

 

绕过视图解析器


如果需要绕过视图解析器 有两种方法 使用请求转发或重定向

@Controller 
@RequestMapping("/user") 
public class UserController {
    /**
     * 最终访问路径 /user/selectAll.action
     * @return
     */
    @RequestMapping("/selectAll")
    public String selectAll() {
        return "forward:/pages/list.jsp";
    }
}


方法返回值


默认返回值ModelAndView


  • Controller功能的方法 默认返回值是ModelAndView
@Controller
@RequestMapping("/demo03")
public class Demo03BookController {
    @RequestMapping("/list")
    public ModelAndView list() {
        //1 创建对象
        ModelAndView modelAndView = new ModelAndView();
        //2 设置视图
        modelAndView.setViewName("book");       //之前 return "book";
        //3 设置模型数据 key-value
        modelAndView.addObject("username","jack");
        return modelAndView;
    }
}


返回字符串


  • 返回字符串 有两种情况 一种是 请求转发 一种是 重定向

           

 请求转发


public String list() {
    return "forward:物理视图";    //jsp路径
}


重定向

public String list() {
    return "redirect:物理视图";   //jsp路径
}

 

返回void


场景1:返回void 没有其他操作


  • Controller返回void
    @RequestMapping("/void1")
    public void void1() {
        System.out.println("void1 执行了 ");
    }

 

场景2:请求调度器


  • 使用servlet请求调度器完成 请求转发/请求包含 操作
@RequestMapping("/void2")
public void void2(HttpServletRequest request , HttpServletResponse response) throws Exception {
  request.setAttribute("username","void2");
  // 请求转发
  request.getRequestDispatcher("/WEB-INF/pages/book.jsp").forward(request, response);
  // 请求包含
  //request.getRequestDispatcher("/WEB-INF/pages/book.jsp").include(request, response);
}


场景3:response响应数据


  • response以流的方式 向浏览器响应数据
    @RequestMapping("/void3")
    public void void3(HttpServletRequest request , HttpServletResponse response) throws Exception {
        response.getWriter().print("void3");
    }

 

场景4:响应JSON


  • 响应JSON数据的时候 必须加@ResponseBody注解 标明响应JSO
    @RequestMapping("/void4")
    @ResponseBody
    public void void4() throws Exception {
        System.out.println("哈哈");
    }


相关文章
|
4天前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
117 89
|
1月前
|
安全 Ubuntu Shell
深入解析 vsftpd 2.3.4 的笑脸漏洞及其检测方法
本文详细解析了 vsftpd 2.3.4 版本中的“笑脸漏洞”,该漏洞允许攻击者通过特定用户名和密码触发后门,获取远程代码执行权限。文章提供了漏洞概述、影响范围及一个 Python 脚本,用于检测目标服务器是否受此漏洞影响。通过连接至目标服务器并尝试登录特定用户名,脚本能够判断服务器是否存在该漏洞,并给出相应的警告信息。
176 84
|
18天前
|
数据可视化 项目管理
个人和团队都好用的年度复盘工具:看板与KPT方法解析
本文带你了解高效方法KPT复盘法(Keep、Problem、Try),结合看板工具,帮助你理清头绪,快速完成年度复盘。
75 7
个人和团队都好用的年度复盘工具:看板与KPT方法解析
|
2天前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。
|
1月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
1月前
|
存储 Java 开发者
浅析JVM方法解析、创建和链接
上一篇文章《你知道Java类是如何被加载的吗?》分析了HotSpot是如何加载Java类的,本文再来分析下Hotspot又是如何解析、创建和链接类方法的。
|
1月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
99 3
|
2月前
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
61 12
|
8月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
7月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
134 1

推荐镜像

更多