Spring mvc 實例--使用velocity視圖,解決中文亂碼問題

    上個星期讀了一些spring mvc源碼,現在可以將之前的寫的簡單的例子貼出來,爲以後的開發作些準備。

 

這是一個非常簡單的例子,就是使用SimpleFormController實現spring mvc的例子。

首先,在web.xml上配置DispatcherServlet。

 

上面配置了DispatcherServlet,而且所有的以htm,vm結尾的url請求都被DispatcherServlet處理。

如果還有用到spring的其他技術的話就需要上面的listener了。

 

接下來我們看一下控制器類。

 

referenceData()方法是爲頁面初始渲染提供必要的數據。onSubmit()方法是在處理此對應頁面提交時數據,並轉向另外一個頁面。

這是一個簡單的例子,所以我們發出一個URL請求時只用用到referenceData()的方法體。

我們發出這樣的URL請求:

http://localhost:8080/winking/home.vm 或http://localhost:8080/winking/home.htm.

然後到這樣一個頁面v.vm:

 

接下來就是核心的配置文件了,上面web.xml裏的servlet名稱是winking,所以DispatcerServlet會找winking-servlet.xml.

這樣子就可以了。

當然上面還是要注意的地方,就是中文問題。

1.需要在vm模板文件加上:<meta http-equiv="Content-Type" content="text/html; charset=GBK">

2.在"velocityConfigurer"加上

   <property name="velocityProperties">
            <props>
                <prop key="input.encoding">GBK</prop>
                <prop key="output.encoding">GBK</prop>
            </props>
        </property>

3.在"viewResolver"加上<property name="contentType">
            <value>text/html;charset=GBK</value>
        </property>


最主要是確保所有的字符集都是統一的。

上面四個property很簡單,前面兩個是在模板方便處理時間和數字格式顯示。

後面兩個是在vm模板能夠訪問request和session的數據。

 

另外還需要一般性的配置,就是在web.xml配置filter

這樣子就完全解決了spring mvc velocity的中文問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章