• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Spring MVC 的视图器是什么意思配置它

武飞扬头像
计算机徐师兄
帮助1

当我们使用 Spring MVC 框架进行 Web 开发时,视图解析器(View Resolver)是一个非常重要的组件,它负责将控制器(Controller)所产生的逻辑视图名称(Logical View Name)转换成实际的视图(View)对象。本文将介绍 Spring MVC 中的视图解析器是什么,以及如何配置它。

学新通

什么是视图解析器?

在 Spring MVC 中,控制器(Controller)的主要职责是处理用户请求,并产生模型数据(Model),同时指定该请求的逻辑视图名称(Logical View Name)。视图解析器的作用是将逻辑视图名称解析成实际的视图对象,以便最终在浏览器中呈现给用户。例如,当用户请求一个 URL 时,控制器可以返回一个逻辑视图名称为 “home”,而视图解析器会将其解析成一个 JSP 页面,最终在浏览器中渲染出来。

Spring MVC 提供了多种视图解析器,包括 InternalResourceViewResolver、XmlViewResolver、JsonViewResolver 等。其中,InternalResourceViewResolver 是最常用的一种,它通过解析逻辑视图名称为 JSP 或 HTML 文件来创建视图对象。

如何配置视图解析器?

在 Spring MVC 中,我们可以通过配置文件(XML 或 Java Config)来配置视图解析器。下面我们将介绍两种常用的配置方式。

配置文件方式

在 XML 配置文件中,我们可以使用 <bean> 标签来定义视图解析器。下面是一个例子:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

在上面的代码中,我们首先定义了一个名为 “viewResolver” 的 InternalResourceViewResolver 管理器,然后通过 <property> 标签设置了视图的前缀和后缀。其中,prefix 属性指定了视图文件的路径前缀,suffix 属性指定了视图文件的后缀名。这里我们指定了 JSP 文件作为视图文件,因此后缀名为 “.jsp”。

Java Config 方式

在 Java Config 中,我们可以通过 @Configuration 注解来定义配置类,然后使用 @Bean 注解来定义视图解析器。下面是一个例子:

@Configuration
public class AppConfig {

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}

在上面的代码中,我们首先定义了一个名为 viewResolver 的 InternalResourceViewResolver 管理器,然后通过 setPrefixsetSuffix 方法设置了视图的前缀和后缀。

视图解析器的使用

在使用 Spring MVC 进行 Web 开发时,我们通常会在控制器的方法中返回逻辑视图名称。例如:

@Controller
@RequestMapping("/hello")
public class HelloController {

    @GetMapping("/")
    public String index() {
        return "hello";
    }
}

在上面的代码中,我们使用 @GetMapping 注解将 /hello/ 请求映射到 index() 方法,并在方法中返回了一个逻辑视图名称 “hello”。这里,“hello” 实际上是一个 JSP 文件的文件名(不包含后缀名),它会被 InternalResourceViewResolver 解析成一个 JSP 视图对象。

总结

本文介绍了 Spring MVC 中的视图解析器是什么,以及如何配置它。视图解析器是 Spring MVC 框架中非常重要的组件,它负责将控制器所产生的逻辑视图名称转换成实际的视图对象,以便最终在浏览器中呈现给用户。在 Spring MVC 中,我们可以通过 XML 配置文件或 Java Config 来配置视图解析器,其中 InternalResourceViewResolver 是最常用的一种。

在控制器方法中,我们通常会返回逻辑视图名称,而不是直接返回视图对象。视图解析器会将逻辑视图名称解析成实际的视图对象,然后在浏览器中渲染出来。

希望本文能够帮助读者更好地理解 Spring MVC 中的视图解析器,并能够在实际项目中灵活使用。下面附上完整的 Java Config 配置代码供参考。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.example.controller" })
public class AppConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        registry.viewResolver(viewResolver);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}
学新通

在上面的配置中,我们使用了 @EnableWebMvc 注解来启用 Spring MVC,@ComponentScan 注解来扫描控制器类所在的包。在 configureViewResolvers() 方法中,我们定义了一个 InternalResourceViewResolver 视图解析器,并将其注册到 ViewResolverRegistry 中。在 addResourceHandlers() 方法中,我们定义了一个资源处理器,用于处理静态资源的访问路径。在 configureDefaultServletHandling() 方法中,我们启用了默认的 Servlet 处理器,以便处理静态资源的访问请求。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgikfbe
系列文章
更多 icon
同类精品
更多 icon
继续加载