SpringMvc---InternalResourceViewResolver
SpringMvc的InternalResourceViewResolver
在前面我们说过使用Html页面作为视图进行返回时,给返回值加上前缀"forward:"在处理后返回的thymeleafView就会变成InternalResourceView,那是使用了thymeleaf作为视图处理器,现在使用InternalResourceViewResolver作为视图解析器,他一般解析jsp后缀的视图。
配置一个新的model
1、配置pom.xml文件【设置打包方式】、【引入依赖并刷新】, 在项目结构中添加WEB-INF目录和web.xml文件 配置web.xml文件【设置请求控制器DispatcherServlet】、【添加请求控制器的初始化参数设置SpringMvc的配置文件位置】、【设置CharacterEncodingFilter,通过初始化参数规定请求与响应的字符编码格式】
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringMvc_jsp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency> <!-- 日志 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <!-- ServletAPI --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- Spring5和Thymeleaf整合包 --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.12.RELEASE</version> </dependency> </dependencies> </project>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceResponseEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
2、配置SpringMvc的配置文件【添加命名空间】、【开启组件扫描】、【设置视图解析器InternalResourceViewResolver】
在配置文件中配置视图解析器用bean标签,生成InternalResourceViewResolver的对象,并用property标签给视图的前缀和后缀注入值,规定视图的位置和后缀后,在控制器方法执行完后就能通过视图解析器将得到的视图名称和前缀后缀拼接起来找到资源经过渲染展示在浏览器上
<?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" 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"> <context:component-scan base-package="xlw.com"></context:component-scan> <!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/templates/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
在webapp下创建一个index.jsp,配服务器将项目部署到服务器上,启动服务器就能直接访问到index.jsp
访问不到就是index位置弄错了,不能在WEB-INF下,浏览器访问不到,但是能在index中加连接通过控制器方法将请求转发进去进而访问到WEB-INF下的目录中的资源

浙公网安备 33010602011771号