新手整合springmvc+velocity過程
阿新 • • 發佈:2018-12-25
最近閒來無事試著學習了一下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的頁面渲染賦值。有的時候用起來真的很方便,
而且讓我寫程式碼的時候面對一些比較重複的程式碼,根據一定的邏輯讓他自動生成,而不用手寫。
蠻方便的!!!