在Spring MVC框架中,常用的视图解析器有以下几种:
1. InternalResourceViewResolver: 这是Spring MVC中默认的视图解析器,用于解析JSP页面或者HTML页面。它会将视图名称解析为JSP文件所在的路径,并且支持JSTL标签库和EL表达式。
2. ResourceBundleViewResolver: 这个视图解析器将视图名称解析为属性文件中定义的key值,并且根据key值在属性文件中获取对应的视图资源。它通常用于国际化的应用程序。
3. XmlViewResolver: 这个视图解析器将视图名称解析为XML文件中定义的视图配置信息,并且根据配置信息生成对应的视图资源。它通常用于复杂的视图配置,如PDF或者Excel文件。
4. FreeMarkerViewResolver: 这个视图解析器用于解析FreeMarker模板,将模板名称解析为FreeMarker模板文件所在的路径,并且将模型数据渲染到对应的模板中。
除此之外,Spring MVC还提供了其他的视图解析器,如VelocityViewResolver、TilesViewResolver等。根据不同的需求,可以选择不同的视图解析器来解析视图资源。
帮我列出这些视图解析器的一些具体用法
好的,下面是针对这些视图解析器的一些具体用法: 1. InternalResourceViewResolver: 该视图解析器通常用于解析JSP页面或者HTML页面,它会将视图名称解析为JSP文件所在的路径,并且支持JSTL标签库和EL表达式,常见的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
其中,prefix属性用于设置JSP文件所在的目录,suffix属性用于设置JSP文件的扩展名。 2. ResourceBundleViewResolver: 该视图解析器将视图名称解析为属性文件中定义的key值,并且根据key值在属性文件中获取对应的视图资源。常见的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> </bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> </bean>
其中,basename属性用于指定属性文件的名称,该文件应该存放在classpath下。比如,如果basename值为views,则Spring会在classpath下查找views.properties文件,该文件中定义了视图名称与视图资源之间的对应关系。 3. XmlViewResolver: 该视图解析器将视图名称解析为XML文件中定义的视图配置信息,并且根据配置信息生成对应的视图资源。常见的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="location"> <value>classpath:/views.xml</value> </property> </bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="location"> <value>classpath:/views.xml</value> </property> </bean>
其中,location属性用于指定视图配置文件的路径,该文件中定义了视图名称与对应的视图资源之间的对应关系。 4. FreeMarkerViewResolver: 该视图解析器用于解析FreeMarker模板,将模板名称解析为FreeMarker模板文件所在的路径,并且将模型数据渲染到对应的模板中。常见的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="prefix" value="/WEB-INF/ftl/" /> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=UTF-8" /> </bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="prefix" value="/WEB-INF/ftl/" /> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=UTF-8" /> </bean>
其中,prefix属性用于设置FreeMarker模板文件所在的目录,suffix属性用于设置FreeMarker模板文件的扩展名,contentType属性用于指定生成的内容类型。 需要注意的是,以上视图解析器的使用需要结合具体场景来决定。同时,Spring MVC还有其他的视图解析器,需要根据实际需求来选择合适的视图解析器。