在springmvc框架中视图解析器都有哪些?

news/2024/11/27 2:26:16/

在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还有其他的视图解析器,需要根据实际需求来选择合适的视图解析器。


http://www.ppmy.cn/news/74990.html

相关文章

上交清华搞事情!发起最全学科大模型中文知识及推理评测!GPT-4 竟然血洗所有国产模型

夕小瑶科技说 原创 作者 | 小戏&#xff0c;Python 从 OpenAI 的 ChatGPT、Meta 的 LLaMA、Anthropic 的 Claude 到复旦的 Moss、清华的 ChatGlm、MiniMax 的 Glow&#xff0c;国内的国外的大模型百花齐放层出不穷。那么&#xff0c;抛出一个相信大家都会关心的问题&#xff…

Python 条件判断与循环

Python 中的条件判断和循环是编写程序时经常使用的控制结构。条件判断用于根据不同的条件执行不同的代码块&#xff0c;而循环则用于重复执行一段代码。 ### 条件判断 在 Python 中&#xff0c;条件判断使用 if、elif&#xff08;可选&#xff09;和 else&#xff08;可选&am…

document文档对象,location位置对象

hash:#号后的部分 host:域名端口号 hostname:域名 href:完整url pathname:目录部分 port:端口号 protocol:网络协议(http:) search:?号后的部分 window.location.reload() reload():刷新网页 reloa reload(url):打开新的网页 assign(url):打开新的网页 replace(url):打开新的…

STL常用容器_2

目录 一、stcak容器&#xff08;栈容器&#xff09; 1、基本概念 2、常用接口 二、queue容器&#xff08;队列容器&#xff09; 1、基本概念 2、常用接口函数 三、list容器&#xff08;链表&#xff09; 1、基本概念 2、构造函数 3、赋值与交换 4、大小操作 5、插入…

2023-05-20 技术与管理的照本宣科教条主义与从事实中成长-反思

摘要: 最近的两份工作遇到了极其严重的教条主义, 有多严重呢&#xff1f;几乎可以说人成了教条的教徒&#xff0c;做事就成了照本宣科的死板硬套, 简直匪夷所思。 结果就是对于现实问题简直就像是建立在空中楼阁之上&#xff0c;不但涉及到管理&#xff0c;更有技术上的。 教…

【Linux高级 I/O(5)】初识存储映射 I/O——mmap()和 munmap()(附代码示例)

存储映射 I/O 存储映射 I/O&#xff08;memory-mapped I/O&#xff09;是一种基于内存区域的高级 I/O 操作&#xff0c;它能将一个文件映射到进程地址空间中的一块内存区域中&#xff0c;当从这段内存中读数据时&#xff0c;就相当于读文件中的数据&#xff08;对文件进…

程序员进入国企:收入少了,加班多了。

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红书/抖音都叫这个名。 已经5月了&#xff0c;才写出2023年的第一篇月末总结&#xff0c;原因我都不信&#xff1a;因为今年加入了国企&#xff0c;完全没有空闲时间&#xff01; 有没有人和我一样&#xff0c;印象中的国企…

100+Python挑战性编程练习系列 -- day 16

Question 58 写一个程序来计算&#xff1a; 当n>0时&#xff0c;f(n)f(n-1)100 且f(0)0 通过控制台输入给定的n&#xff08;n>0&#xff09;。 例如&#xff1a;如果将以下n作为程序的输入&#xff1a; 5 然后&#xff0c;程序的输出应该是&#xff1a; 500 如果输入数据…