在SpringMVC框架中,视图解析器InternalResourceViewResolver类是ViewResolver的一个实现,该框架可以解析逻辑视图名称,例如内部物理资源“/hello”,例如Servlet和存放在WEB-INF文件夹下的jsp文件。它是UrlBasedViewResolver一个子类,它使用“前缀”和“后缀”来转换从Spring控制器返回的逻辑视图名称以映射到实际的物理视图。例如,如果用户尝试访问/homeURL并HomeController返回“home”,则DispatcherServlet将转向InternalResourceViewResolver来处理,使用前缀和后缀来查找Web应用程序实际物理视图。例如,如果前缀"/WEB-INF/views/"和后缀,".jsp"然后"home"将被解析为"/WEB-INF/home.jsp"通过InternalResourceViewResolver。将JSP文件放入WEB-INF目录中也是最好的做法,以避免直接访问(例如通过手动输入的URL),保证只有通过程序中控制器才能够访问它们,应用程序更加安全了。
如何在Spring MVC中配置InternalResorveViewResolver
您可以ViewResolver使用Java Configuration或XML配置来配置它,如下所示:
在Spring中使用XML配置ViewResolver
下面是一些用于在Spring中配置视图解析的XML片段,如果您正在使用基于XML的确认的Spring项目,则可以使用它:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" prefix="/WEB-INF/" suffix=".jsp" />
使用Java配置配置ViewResolver
从Spring 3.0开始,您还可以使用Java配置视图解析器ViewResolver,即不使用XML。您可以使用以下代码在您的spring项目中配置内部资源视图解析器:
@Bean public ViewResolver viewResolver() { InternalResourceViewResolver irv = new InternalResourceViewResolver(); irv.setPrefix("/WEB-INF/"); irv.setSuffix(".jsp"); return irv; }
您可以看到XML和Java都提供了一种在Spring中配置内部资源视图解析器的简单方法。
InteralResourceViewResolver的需要注意的重点
以下是关于Spring MVC框架中这个有用的类的一些重要知识。这将帮助您更好地了解项目的流程:
转向ViewResolvers时,InternalResourceViewResolver总是负责最后一步解析,因为它会尝试解析任何视图名称,而不管底层资源是否真实存在。
假如我们有几个视图解析器:视图解析器1、视图解析器2、视图解析器3。如图
InternalResourceViewResolver是DispatcherServlet的默认视图解析器,它充当Spring MVC框架中的前端控制器。
默认情况下,InternalResourceViewResolver返回InternalResourceView(即Servlet和JSP),如果你想使用JSTL标签的一些功能的话,那就需要用JstlView来替换InternalResourceView了,具体的配置如下,
使用JstlView的好处是JSTL标签将获得在Spring中配置的Locale 国际化配置。
JSTL的格式化标签需要一个区域设置来正确地格式化区域特定的值,例如货币和日期。文本信息标记可以使用 Spring配置根据Locale正确选择要在HTML中呈现的文本内容。
4.InteralResourceViewResolver是Spring框架提供的几个内置视图解析器之一,下面列出了一些最有用的视图解析器:
- BeanNameViewResolver-在Spring应用程序上下文中将视图解析为bean,其ID与视图名称相同。举例来说, 如果你有一个bean与id = "home"和控制器返回一个逻辑视图名称,"home"那么这个bean将通过 BeanNameViewResolver来解析
- FreeMarkerViewResolver-FreeMarker模版视图解析器
- JasperReportsViewResolver-JasperReports报表视图解析器
- XsltViewResolver-解析的观点被渲染的结果一个XSLT转换。
5.ViewResolver在Spring MVC 中最大的好处是它将控制器中的请求处理逻辑与视图的视图呈现分离开来。简而言之,控制器不知道使用哪种视图技术来渲染视图,实现了解耦。它只是返回一个可以解析为JSP,FreeMarker模板或任何其他视图技术的逻辑名称。这也意味着只要逻辑视图名称相同,您就可以在不更改控制器的情况下更改视图类型。
InteralResourceViewResolver在是Spring MVC框架中的有重要的内容之一,并且作为Java Spring开发人员,您应该熟悉它,Spring MVC中的视图解析概念非常重要。
本文暂时没有评论,来添加一个吧(●'◡'●)