1. 程式人生 > >新手整合springmvc+velocity過程

新手整合springmvc+velocity過程

最近閒來無事試著學習了一下velocity這個模板,做了一個springmvc的整合例項!

這個東西首先你需要引入velocity的包

有兩個缺一不可。velocity.jar和velocity-tools.jar

接下來就是springmvc中velocity的bean配置(切記要註釋掉其他檢視解析器的程式碼,不然會找不到你要跳轉的html或者vm的)

*********************************************************************** 

程式碼如下:
    <!-- 模板資訊設定 -->
    <bean id="velocityConfigurer"
        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <property name="resourceLoaderPath" value="/" /><!-- WEB-INF/velocity
            設定模板防止位置 -->
        <property name="velocityProperties">
            <props>
                <prop key="directive.foreach.counter.name">loopCounter</prop>
                <prop key="directive.foreach.counter.initial.value">0</prop>
                <prop key="input.encoding">UTF-8</prop><!-- 指定模板引擎進行模板處理的編碼 -->
                <prop key="output.encoding">UTF-8</prop><!-- 指定輸出流的編碼 -->
            </props>
        </property>
    </bean>

    <!-- 設定檢視解析工具 -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="suffix" value=".html" />
        <!-- 避免亂碼 -->
        <property name="contentType" value="text/html;charset=UTF-8" />
        <property name="dateToolAttribute" value="dateTool" />
        <property name="numberToolAttribute" value="numberTool" />
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
    </bean>

***********************************************************************

最重要就是springmvc中的這塊的配置,配置成功之後就可以寫模板檔案了

我在工程中寫了一個test3.vm檔案,和一個test3.html檔案(根據字尾來跳轉),在經過如上的配置之後都能成功的跳轉到對應的頁面,下面貼下我的控制器的程式碼。



*********************************************************************** 

    @RequestMapping(value = "test3")
    public ModelAndView test3(HttpServletRequest request, HttpServletResponse response) {
        ModelAndView mav = new ModelAndView("manager/test3");//
        List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        mav.addObject("msg", "shenfeng");
        mav.addObject("list", list);
        return mav;
    }

***********************************************************************
控制器很簡單,就是一個modelandview然後定義跳轉的路徑,進行跳轉,上面的springmvc.xml我是配的html的字尾。所以就跳轉到了test3.html,下面是我寫的html程式碼。



*********************************************************************** 

    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <title>${msg}</title>  
    </head>  
    <body>  
        $msg HTML  $msg
        #foreach($li in $list)
            #if($li=='C'||$li=='B')
            <span style="color: red;"">$li</span>
            #end
        #end
    </body>  

***********************************************************************

最後將結果如下



就這樣跳轉成功的將我從後臺返回的兩個object給列印了出來。
我覺得有了這種模板,讓我們可以不選擇jsp也能實現對html的頁面渲染賦值。有的時候用起來真的很方便,
而且讓我寫程式碼的時候面對一些比較重複的程式碼,根據一定的邏輯讓他自動生成,而不用手寫。
蠻方便的!!!