SpringMVC 的视图控制器是一个可以将 URL 映射到视图的控制器。它允许开发人员通过简单的配置来处理不需要任何逻辑的请求,并将它们直接映射到相应的视图。使用视图控制器,可以将控制器代码与视图代码分开,使代码更加清晰易读。
SpringMVC 的视图控制器是通过配置 SimpleUrlHandlerMapping 和 InternalResourceViewResolver 两个组件来实现的。SimpleUrlHandlerMapping 用于将 URL 映射到控制器方法或视图控制器,而 InternalResourceViewResolver 用于将视图名称解析为实际的视图。在配置视图控制器时,需要配置这两个组件,并将它们添加到 SpringMVC 的 DispatcherServlet 中。
配置 SimpleUrlHandlerMapping
SimpleUrlHandlerMapping 是一个将 URL 映射到控制器方法或视图控制器的组件。它通过将 URL 映射到特定的处理程序(例如控制器方法或视图控制器),并为处理程序提供所需的参数来实现 URL 映射。在配置 SimpleUrlHandlerMapping 时,需要将 URL 映射到视图控制器的 BeanName,并设置 SimpleUrlHandlerMapping 的映射属性。下面是一个配置 SimpleUrlHandlerMapping 的示例:
代码语言:javascript复制<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/home">homeViewController</prop>
<prop key="/about">aboutViewController</prop>
</props>
</property>
</bean>
在上面的代码中,我们首先创建了一个 SimpleUrlHandlerMapping 的 Bean,并将它的 mappings 属性设置为一个映射属性列表。这个映射属性列表中包含了两个 URL 映射,分别将 /home 映射到 homeViewController Bean,将 /about 映射到 aboutViewController Bean。
配置 InternalResourceViewResolver
InternalResourceViewResolver 是一个将视图名称解析为实际的视图的组件。它可以将视图名称解析为 JSP、HTML 或其他类型的视图,并将这些视图呈现给用户。在配置 InternalResourceViewResolver 时,需要设置视图前缀和视图后缀,以便它可以将视图名称解析为实际的视图。下面是一个配置 InternalResourceViewResolver 的示例:
代码语言:javascript复制<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
在上面的代码中,我们首先创建了一个 InternalResourceViewResolver 的 Bean,并将它的 prefix 属性设置为 /WEB-INF/views/,将 suffix 属性设置为 .jsp。这意味着 InternalResourceViewResolver 将视图名称解析为以 /WEB-INF/views/ 为前缀,以 .jsp 为后缀的 JSP 视图。