SpringSide開發實戰(二):修改數據庫、字符編碼和快速部署應用程序
Posted on 2006-12-23 22:37 京山游俠 閱讀(5857) 評論(11) 編輯 收藏 所屬分類: SpringSide開發實戰
?2

?3

?4

?5

?6

?7

?8

?9

10

11

其次是修改src\main\resources\config文件夾下的hibernate.properties文件,注釋掉第一行,解注釋第二行,如下:

2

3

4

5

6

這個過程是簡單的,但是還有一件很重要的事情需要注意,那就是一定要記得把MySQL提供的JDBC驅動mysql.jar拷貝到src\main\webapp\WEB-INF\lib文件夾下,否則,會遇到如下錯誤:
SpringSide非常注重對i18n的支持,因此創建國際化的應用程序非常方便,只需要在src\mian\resources\i18n文件夾下加入相應的資源文件即可。SpringSide默認使用UTF-8編碼,這從web.xml中注冊的encodingFilter就可以看出來,當然也可以選擇自己喜歡的字符編碼,比如GB2312。如果要修改字符編碼,一定要記住有四個地方要保持一致:
1、web.xml中的encodingFilter配置,如下:








2、數據庫中的默認字符集,需要在創建數據表的時候指定,如下:






3、JDBC的連接設置,在src\main\resources\config\jdbc.properties中,如下:

4、JSP頁面中的頁面編碼,如下:





只要將這四個地方設置為一致,JSP頁面顯示出來就應該不會是亂碼。歸根結底,是SpringSide在web.xml中注冊的encodingFilter幫了大忙。但是,當需要從Struts的resource bundle中讀取message的時候,就不是那么方便了,因為需要創建如下的messages_zh_CN.properties文件:





























這種文件沒有可讀性,當然就更加不好編輯了,要生成這樣的文件,需要使用J2SDK提供的命令行工具native2ascii.exe,為了加速開發和調試,可以編寫一個批處理文件make_resource.bat,如下:

然后,將該批處理文件注冊為Eclipse的外部工具,如下圖:
以后,需要修改messages的時候,先在temp.txt中修改,然后運行該外部工具即可??旖荻奖?。
沒有人能夠一氣呵成寫完一個項目然后再運行,所有的程序員都需要一邊修改代碼,一邊運行程序以觀察修改的效果,如此反復進行。但是SpringSide提供的quickstart.bat存在很多問題,造成了程序員不能夠快速部署程序,原因有二,一是quickstart.bat每次運行的時候都需要重新構建項目,更新組件庫,然后啟動Tomcat服務器,太慢了;二是運行quickstart.bat后,就算關閉控制臺窗口,Tomcat服務器依然會在后臺運行,以至于下次運行quickstart.bat會出錯,提示不能清理文件。
要解決這兩個問題也不難,可以將springside根目錄下的misc\servers\tomcat-5.5.17\bin目錄下的startup.bat和shutdown.bat注冊為Eclispe的外部工具,以達到快速啟動和快速關閉Tomcat服務器的目的,如下圖:
此外,很多時候不需要重新啟動服務器,只需要把更改過的文件重新部署到服務器就可以了,在springside的根目錄目錄下面,misc\servers\tomcat-5.5.17\webapps文件夾中包含了所有的SpringSide項目。使用Windows自帶的命令行工具xcopy,可以將修改過的.class文件、配置文件、資源文件和.jsp文件部署到服務器中。創建一個批處理文件deploy.bat,如下:




其中/s選項為復制子目錄,/d選項為只復制更新過的文件,/y選項為不用詢問是否覆蓋。
然后再將該deploy.bat注冊為Eclipse的外部工具。這里不截圖了,累贅。
當修改了Struts的配置文件和Action類之后,由于Struts只在Tomcat啟動時讀取一次配置文件并緩存起來,而Action對象也只在第一次使用的時候創建一個實例,因此必須重新啟動服務器才能看到效果,配合上面的deploy、stop_tomcat和start_tomcat外部工具使用,使得部署和調試SpringSide應用程序更加快捷。