返回介绍

3.5 视图解析器

发布于 2025-04-22 20:09:58 字数 2924 浏览 0 评论 0 收藏

Spring MVC 中的视图解析器负责解析视图。可以通过在配置文件中定义一个 ViewResolver(如下)来配置视图解析器。

< bean id="viewResolver" class="org.springframework.web.servlet. →view.InternalResourceViewResolver"> < property name="prefix" value="/WEB-INF/jsp/"/> < property name="suffix" value=".jsp"/> < /bean>

视图解析器配置有前缀和后缀两个属性。这样一来,view 路径将缩短。例如,仅需提供“myPage”,而不必再将视图路径设置为/WEB-INF/jsp/myPage.jsp,视图解析器将会自动增加前缀和后缀。

以 springmvc-intro2 应用为例,该例子同 springmvc-intro1 应用类似,但调整了配置文件的名称和路径。此外,它还配置了默认的视图解析器,为所有视图路径添加前缀和后缀,如图 3.3 所示。

图片 7

图 3.3 springmvc-intro2 文件结构

springmvc-intro2 中,Spring MVC 的配置文件被重命名为 springmvc-config.xml 中,并移动到/ WEB-INF/config 目录下。为了让 Spring MVC 可以正确加载到该配置文件,需要将文件路径配置到 Spring MVC 的 Dispatcher servlet。清单 3.7 显示了 springmvc-intro2 应用的部署描述符(web.xml 文件)。

清单 3.7 springmvc-intro2 应用的部署描述符

< ?xml version="1.0" encoding="UTF-8"?>
< web-app version="3.1"
  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_3_1.xsd">
  < servlet>
    < servlet-name>springmvc< /servlet-name>
    < servlet-class>
      org.springframework.web.servlet.DispatcherServlet
    < /servlet-class>
    < init-param> < param-name>contextConfigLocation</param-name> < param-value> /WEB-INF/config/springmvc-config.xml < /param-value> < /init-param> < load-on-startup>1< /load-on-startup> < /servlet> < servlet-mapping> < servlet-name>springmvc< /servlet-name> < url-pattern>/< /url-pattern> < /servlet-mapping> < /web-app>

需要特别注意的是 web.xml 文件中的 init-param 元素。要使用非默认配置文件的命名和路径,需要使用名为 contextConfigLocation 的 init-param,其值应为配置文件在应用中的相对路径(见清单 3.8)。

清单 3.8 springmvc-intro2 的配置文件

< ?xml version="1.0" encoding="UTF-8"?>
< beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd">

  < bean name="/input-product"
      class="controller.InputProductController"/>
  < bean name="/save-product"
      class="controller.SaveProductController"/> < bean id="viewResolver" class="org.springframework.web.servlet.view. →InternalResourceViewResolver"> < property name="prefix" value="/WEB-INF/jsp/"/> < property name="suffix" value=".jsp"/> < /bean> < /beans>

在浏览器中输入如下 URL,测试 app03b 应用:

http://localhost:8080/springmvc-intro2/input-product

即可看到如图 3.2 所示的表单页面。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。