Spring MVC視圖解析器:Spring MVC ResourceBundleViewResolver示例


在Spring MVC中,使用ResourceBundleViewResolver基於“.properties”文件中的視圖bean來解析“視圖名稱”。

默認地,ResourceBundleViewResolver將從位於項目class路徑根目錄下的文件views.properties中加載視圖bean,不過,這個位置可以通過“basename”屬性覆蓋:

<beans ...>
         <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
              <property name="basename" value=”spring-views” </property>
         </bean>
</beans>

  

在上面這個例子中,它從位於項目class路徑根目錄下的“spring-views.properties”中加載視圖bean。

請看下面的ResourceBundleViewResolver示例。

1.  Controller控制器

一個控制器類,返回一個名為“WelcomePage”的視圖。

@Controller
@RequestMapping(value = "demo2")
public class WelcomeController {

    @RequestMapping(value = "/welcome")
    public ModelAndView welcome() {
        User user=new User("rollen",12,"beijing");
        return new ModelAndView("welcome","user",user);
    }
}

  

2.  ResourceBundleViewResolver視圖解析器

在Spring的bean配置文件中,注冊ResourceBundleViewResolver視圖解析器,將默認的視圖bean位置改為“spring-views.properties”。

<?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:p="http://www.springframework.org/schema/p"
       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-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 掃描web包,應用Spring的注解 -->
    <context:component-scan base-package="com.xxx.training"/>


    <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
        <property name="basename">
            <value>spring-views</value>
        </property>
    </bean>

    <mvc:annotation-driven/>
</beans>

  

3.  視圖bean

將每個視圖bean按普通的資源綁定樣式(鍵-值對)進行聲明。其中:

(1)“welcome”是要匹配的視圖名稱

(2)“.(class)”是視圖的類型

(3)“.url”屬性是視圖的url位置

文件:spring-views.properties

注意:要將這個“spring-views.properties”文件放到項目的class路徑下。

welcome.(class)=org.springframework.web.servlet.view.JstlView
welcome.url=/WEB-INF/pages/welcome.jsp

執行過程:

當控制器返回一個名為“welcome”的視圖時,ResourceBundleViewResolver將在“spring-views.properties”文件中查找以“welcome”起始的鍵,並返回相對應的視圖URL“/WEB-INF/pages/welcome.jsp”給DispatcherServlet。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM