1. 程式人生 > >Spring mvc 例項--使用velocity檢視,解決中文亂碼問題

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的中文問題了。