SpringMVC如何配置JSP視圖解析器
SpringMVC配置JSP視圖解析器
介紹
(1)Tomcat中提供了JSPServlet負(fù)責(zé)處理JSP文件。
(2)SpringMVC默認(rèn)有請求轉(zhuǎn)發(fā)視圖(forward:)和重定向視圖(redirect:),我們可以利用請求轉(zhuǎn)發(fā)視圖,將JSP文件的視圖解析任務(wù)交給JSPServlet處理,故配置JSP視圖解析器實(shí)際上是配置請求轉(zhuǎn)發(fā)視圖解析器,同時(shí)可以配置視圖解析器的前綴和后綴屬性來減少冗余代碼。
項(xiàng)目測試
(1)在/WEB-INF/templates下創(chuàng)建index.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>jsp</h1> </body> </html>
(2)編寫SpringMVC-config.xml文件,配置JSP視圖解析器
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.wsh.controller"></context:component-scan> <!--配置JSP視圖解析器--> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/templates/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--開啟注解驅(qū)動(dòng),否則控制器中帶有@RequestMapping的方法失效--> <mvc:annotation-driven/> <!--指定請求返回對(duì)應(yīng)頁面--> <mvc:view-controller path="/index" view-name="index"></mvc:view-controller> </beans>
(3)運(yùn)行
在springmvc框架中視圖解析器都有哪些?
在Spring MVC框架中
常用的視圖解析器有以下幾種
- 1. InternalResourceViewResolver: 這是Spring MVC中默認(rèn)的視圖解析器,用于解析JSP頁面或者HTML頁面。它會(huì)將視圖名稱解析為JSP文件所在的路徑,并且支持JSTL標(biāo)簽庫和EL表達(dá)式。
- 2. ResourceBundleViewResolver: 這個(gè)視圖解析器將視圖名稱解析為屬性文件中定義的key值,并且根據(jù)key值在屬性文件中獲取對(duì)應(yīng)的視圖資源。它通常用于國際化的應(yīng)用程序。
- 3. XmlViewResolver: 這個(gè)視圖解析器將視圖名稱解析為XML文件中定義的視圖配置信息,并且根據(jù)配置信息生成對(duì)應(yīng)的視圖資源。它通常用于復(fù)雜的視圖配置,如PDF或者Excel文件。
- 4. FreeMarkerViewResolver: 這個(gè)視圖解析器用于解析FreeMarker模板,將模板名稱解析為FreeMarker模板文件所在的路徑,并且將模型數(shù)據(jù)渲染到對(duì)應(yīng)的模板中。
除此之外,Spring MVC還提供了其他的視圖解析器,如VelocityViewResolver、TilesViewResolver等。
根據(jù)不同的需求,可以選擇不同的視圖解析器來解析視圖資源。
幫我列出這些視圖解析器的一些具體用法
好的,下面是針對(duì)這些視圖解析器的一些具體用法:
1. InternalResourceViewResolver:
該視圖解析器通常用于解析JSP頁面或者HTML頁面,它會(huì)將視圖名稱解析為JSP文件所在的路徑,并且支持JSTL標(biāo)簽庫和EL表達(dá)式,常見的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
其中,prefix屬性用于設(shè)置JSP文件所在的目錄,suffix屬性用于設(shè)置JSP文件的擴(kuò)展名。
2. ResourceBundleViewResolver:
該視圖解析器將視圖名稱解析為屬性文件中定義的key值,并且根據(jù)key值在屬性文件中獲取對(duì)應(yīng)的視圖資源。
常見的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> </bean>
其中,basename屬性用于指定屬性文件的名稱,該文件應(yīng)該存放在classpath下。
比如,如果basename值為views,則Spring會(huì)在classpath下查找views.properties文件,該文件中定義了視圖名稱與視圖資源之間的對(duì)應(yīng)關(guān)系。
3. XmlViewResolver:
該視圖解析器將視圖名稱解析為XML文件中定義的視圖配置信息,并且根據(jù)配置信息生成對(duì)應(yīng)的視圖資源。
常見的配置如下:
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="location"> <value>classpath:/views.xml</value> </property> </bean>
其中,location屬性用于指定視圖配置文件的路徑,該文件中定義了視圖名稱與對(duì)應(yīng)的視圖資源之間的對(duì)應(yīng)關(guān)系。
4. FreeMarkerViewResolver:
該視圖解析器用于解析FreeMarker模板,將模板名稱解析為FreeMarker模板文件所在的路徑,并且將模型數(shù)據(jù)渲染到對(duì)應(yīng)的模板中。
常見的配置如下:
<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屬性用于設(shè)置FreeMarker模板文件所在的目錄,suffix屬性用于設(shè)置FreeMarker模板文件的擴(kuò)展名,contentType屬性用于指定生成的內(nèi)容類型。
需要注意的是,以上視圖解析器的使用需要結(jié)合具體場景來決定。
同時(shí),Spring MVC還有其他的視圖解析器,需要根據(jù)實(shí)際需求來選擇合適的視圖解析器。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析Java程序中對(duì)象內(nèi)存的分配和控制的基本方法
這篇文章主要介紹了解析Java程序中對(duì)象內(nèi)存的分配和控制的基本方法,包括計(jì)算對(duì)象的內(nèi)存占用的方法,要的朋友可以參考下2016-04-04使用spring boot 整合kafka,延遲啟動(dòng)消費(fèi)者
這篇文章主要介紹了使用spring boot 整合kafka,延遲啟動(dòng)消費(fèi)者的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)
我們構(gòu)建了一個(gè)完整的 Spring Boot 3 和 Elasticsearch 8.x 的增刪改查示例應(yīng)用,使用 Spring Data Elasticsearch Repository,我們能夠快速實(shí)現(xiàn)對(duì) Elasticsearch 的基本 CRUD 操作,簡化了開發(fā)流程,希望這個(gè)示例能夠幫助你理解如何在項(xiàng)目中有效使用 Elasticsearch!2024-11-11Java令牌Token登錄與退出的實(shí)現(xiàn)
這篇文章主要介紹了Java令牌Token登錄與退出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05java字符串?dāng)?shù)字補(bǔ)齊位數(shù)詳解
這篇文章主要介紹了java字符串?dāng)?shù)字補(bǔ)齊位數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03