天天看點

jsp springmvc 視圖解析器_SpringMVC整合jsp與velocity 配置多個視圖解析器

本來的項目是純SpringMVC的,沒辦法,隻會java。後來覺得是不是可以用其它東西來替換jsp,然後發現velocity的東西。

velocity是一種模闆語言,與它類似的還有freemark。veocity的優點的快,缺點的功能不算特别強大;freemark的功能超級強大,但速度慢一些。我偏向使用簡潔快速的velocity,另外velocity的layout功能也是我決定用它來替換jsp的一個原因。

整合多視圖

原來還用着的jsp不可能馬上就幹掉,是以需要在SpringMVC裡配置多個視圖解析器(ViewResolver)

好在SpringMVC本身就支援多個視圖的配置,原來的配置如下:

現在要增加一個velocity視圖解析器,增加一個VelocityLayoutViewResolver的,同時要注意order參數的配置。SpringMVC不知道每個解析器的調用順序,需要我們自己在配置時就配置好:

因為要相容原來的jsp視圖,是以我将jsp配置成了優先級最高。對于velocity還要增加一些配置,以下是velocity必須要有的配置

以及velocity.properties的配置

#設定字元集 input.encoding=UTF-8 output.encoding=UTF-8

velocity的layout用法

如果隻是簡單的把jsp檔案改成用vm檔案來寫就沒有什麼意思了,layout是一個比較有意思的用法,它可以将大量公共的頁面架構寫成一個獨立的檔案,讓最終的視圖檔案去引用。即可以大量簡化代碼,又可以讓程式員專注與目前的頁面邏輯。

模闆檔案如下:

## file=template.vm  

 $!page_title   $screen_content  

業務檔案代碼如下:

#set( $layout = "template.vm" ) #set( $page_title = "this is the test page") #define($screen_content) this is buisin content #end

看多簡單!