<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    京山游俠

    專注技術(shù),拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    SpringSide默認(rèn)的數(shù)據(jù)庫是hsql,但是大部分開發(fā)人員熟悉的數(shù)據(jù)庫是MySql,因此在實(shí)際開發(fā)過程中,遇到的第一件事往往是修改數(shù)據(jù)庫。在SpringSide中修改數(shù)據(jù)庫很簡單,還是以前一篇中創(chuàng)建的xkland項(xiàng)目為例,首先修改src\main\resources\config文件夾下的jdbc.properties文件,注釋掉1、2行,解注釋7、8行,并修改10、11行的用戶名和密碼,如下:
    ?1#jdbc.driverClassName=org.hsqldb.jdbcDriver
    ?2#jdbc.url=jdbc:hsqldb:res:/hsqldb/helloworld
    ?3
    ?4#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
    ?5#jdbc.url=jdbc:oracle:thin:@localhost:helloworld?
    ?6
    ?7jdbc.driverClassName=com.mysql.jdbc.Driver
    ?8jdbc.url=jdbc:mysql://localhost:3306/xkland?useUnicode=true&characterEncoding=utf8
    ?9
    10jdbc.username=xkland
    11jdbc.password=xkland

    其次是修改src\main\resources\config文件夾下的hibernate.properties文件,注釋掉第一行,解注釋第二行,如下:
    1#hibernate.dialect=org.hibernate.dialect.HSQLDialect
    2hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    3#hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
    4hibernate.show_sql=false
    5hibernate.cache.use_query_cache=true
    6hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

    這個過程是簡單的,但是還有一件很重要的事情需要注意,那就是一定要記得把MySQL提供的JDBC驅(qū)動mysql.jar拷貝到src\main\webapp\WEB-INF\lib文件夾下,否則,會遇到如下錯誤:
    14.JPG

    SpringSide非常注重對i18n的支持,因此創(chuàng)建國際化的應(yīng)用程序非常方便,只需要在src\mian\resources\i18n文件夾下加入相應(yīng)的資源文件即可。SpringSide默認(rèn)使用UTF-8編碼,這從web.xml中注冊的encodingFilter就可以看出來,當(dāng)然也可以選擇自己喜歡的字符編碼,比如GB2312。如果要修改字符編碼,一定要記住有四個地方要保持一致:
    1、web.xml中的encodingFilter配置,如下:
    <filter>?
    ??????
    <filter-name>encodingFilter</filter-name>??
    ????????
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>??
    ????????
    <init-param>?
    ????????????
    <param-name>encoding</param-name>??
    ????????????
    <param-value>UTF-8</param-value>?
    ????????
    </init-param>?
    </filter>??

    2、數(shù)據(jù)庫中的默認(rèn)字符集,需要在創(chuàng)建數(shù)據(jù)表的時候指定,如下:
    CREATE?TABLE?`user`?(
    ??`id`?
    int(11)?NOT?NULL?auto_increment,
    ??`username`?
    varchar(20),
    ??`password`?
    char(32),?
    ??
    PRIMARY?KEY??(`id`)
    )?ENGINE
    =InnoDB?DEFAULT?CHARSET=utf8

    3、JDBC的連接設(shè)置,在src\main\resources\config\jdbc.properties中,如下:
    jdbc.url=jdbc:mysql://localhost:3306/xkland?useUnicode=true&characterEncoding=utf8

    4、JSP頁面中的頁面編碼,如下:
    <%@?page?contentType="text/html;?charset=utf-8"?%>

    <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/>

    只要將這四個地方設(shè)置為一致,JSP頁面顯示出來就應(yīng)該不會是亂碼。歸根結(jié)底,是SpringSide在web.xml中注冊的encodingFilter幫了大忙。但是,當(dāng)需要從Struts的resource bundle中讀取message的時候,就不是那么方便了,因?yàn)樾枰獎?chuàng)建如下的messages_zh_CN.properties文件:
    #?--?direct?output?message?--
    message
    ={0}

    #?--?crud?message
    entity.saved
    =\u6210\u529f\u4fdd\u5b58\u3002
    entity.missing
    =\u627e\u4e0d\u5230\u6b64ID\u7684\u5bf9\u8c61\u3002
    entity.deleted
    =\u6210\u529f\u5220\u9664\u3002

    #?--?validator?errors?--
    errors.required
    ={0}?\u4e3a\u5fc5\u586b\u9879\u3002
    errors.maxlength
    ={0}?\u4e0d\u80fd\u5927\u4e8e?{1}?\u4e2a\u5b57\u7b26\u3002
    errors.minlength
    ={0}?\u4e0d\u80fd\u5c11\u4e8e?{1}?\u4e2a\u5b57\u7b26\u3002
    errors.invalid
    ={0}?\u65e0\u6548\u3002

    errors.byte
    ={0}?\u5fc5\u987b\u4e3abyte\u7c7b\u578b\u3002
    errors.double
    ={0}?\u5fc5\u987b\u4e3adouble\u7c7b\u578b\u3002
    errors.float
    ={0}?\u5fc5\u987b\u4e3afloat\u7c7b\u578b\u3002
    errors.integer
    ={0}?\u5fc5\u987b\u4e3a\u4e00\u6570\u503c\u3002
    errors.long
    ={0}?\u5fc5\u987b\u4e3along\u7c7b\u578b\u3002
    errors.short
    ={0}?\u5fc5\u987b\u4e3ashort\u7c7b\u578b\u3002

    errors.date
    ={0}?\u4e0d\u662f\u6709\u6548\u65e5\u671f\u683c\u5f0f\u3002
    errors.range
    ={0}?\u672a\u5728?{1}?\u4e0e?{2}?\u8303\u56f4\u5185\u3002
    errors.creditcard
    ={0}?\u4e3a\u65e0\u6548\u4fe1\u7528\u5361\u53f7\u3002
    errors.email
    ={0}?\u4e3a\u65e0\u6548\u90ae\u4ef6\u5730\u5740\u3002
    errors.phone
    ={0}?\u4e3a\u65e0\u6548\u7535\u8bdd\u53f7\u7801\u3002
    errors.zip
    ={0}?\u4e3a\u65e0\u6548\u90ae\u653f\u7f16\u7801\u3002

    hello
    =\u4f60\u597d\uff0cSpringSide!

    這種文件沒有可讀性,當(dāng)然就更加不好編輯了,要生成這樣的文件,需要使用J2SDK提供的命令行工具native2ascii.exe,為了加速開發(fā)和調(diào)試,可以編寫一個批處理文件make_resource.bat,如下:
    native2ascii?-encoding?utf-8?src\main\resources\i18n\temp.txt?src\main\resources\i18n\messages_zh_CN.properties


    然后,將該批處理文件注冊為Eclipse的外部工具,如下圖:
    15.JPG

    以后,需要修改messages的時候,先在temp.txt中修改,然后運(yùn)行該外部工具即可。快捷而方便。

    沒有人能夠一氣呵成寫完一個項(xiàng)目然后再運(yùn)行,所有的程序員都需要一邊修改代碼,一邊運(yùn)行程序以觀察修改的效果,如此反復(fù)進(jìn)行。但是SpringSide提供的quickstart.bat存在很多問題,造成了程序員不能夠快速部署程序,原因有二,一是quickstart.bat每次運(yùn)行的時候都需要重新構(gòu)建項(xiàng)目,更新組件庫,然后啟動Tomcat服務(wù)器,太慢了;二是運(yùn)行quickstart.bat后,就算關(guān)閉控制臺窗口,Tomcat服務(wù)器依然會在后臺運(yùn)行,以至于下次運(yùn)行quickstart.bat會出錯,提示不能清理文件。

    要解決這兩個問題也不難,可以將springside根目錄下的misc\servers\tomcat-5.5.17\bin目錄下的startup.bat和shutdown.bat注冊為Eclispe的外部工具,以達(dá)到快速啟動和快速關(guān)閉Tomcat服務(wù)器的目的,如下圖:
    16.JPG

    17.JPG

    此外,很多時候不需要重新啟動服務(wù)器,只需要把更改過的文件重新部署到服務(wù)器就可以了,在springside的根目錄目錄下面,misc\servers\tomcat-5.5.17\webapps文件夾中包含了所有的SpringSide項(xiàng)目。使用Windows自帶的命令行工具xcopy,可以將修改過的.class文件、配置文件、資源文件和.jsp文件部署到服務(wù)器中。創(chuàng)建一個批處理文件deploy.bat,如下:

    xcopy?src\main\webapp\*.jsp?E:\springside-2.0\misc\servers\tomcat-5.5.17\webapps\xkland?/d?/y
    xcopy?bin\*.*?E:\springside-
    2.0\misc\servers\tomcat-5.5.17\webapps\xkland\WEB-INF\classes?/s?/d?/y
    xcopy?src\main\resources\*.*?E:\springside-
    2.0\misc\servers\tomcat-5.5.17\webapps\xkland\WEB-INF\classes?/s?/d?/y
    xcopy?src\main\webapp\WEB-INF\*.xml?E:\springside-
    2.0\misc\servers\tomcat-5.5.17\webapps\xkland\WEB-INF?/d?/y


    其中/s選項(xiàng)為復(fù)制子目錄,/d選項(xiàng)為只復(fù)制更新過的文件,/y選項(xiàng)為不用詢問是否覆蓋。

    然后再將該deploy.bat注冊為Eclipse的外部工具。這里不截圖了,累贅。

    當(dāng)修改了Struts的配置文件和Action類之后,由于Struts只在Tomcat啟動時讀取一次配置文件并緩存起來,而Action對象也只在第一次使用的時候創(chuàng)建一個實(shí)例,因此必須重新啟動服務(wù)器才能看到效果,配合上面的deploy、stop_tomcat和start_tomcat外部工具使用,使得部署和調(diào)試SpringSide應(yīng)用程序更加快捷。


    評論

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-24 09:27 by laojang
    很好.有學(xué)到了不少,繼續(xù)

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-24 11:28 by errorfun
    要注意的是保存文件時的編碼也要調(diào)成一致的,要不也會亂碼。不過ECLIPSE好像有根據(jù)JSP頁面設(shè)置的ENCODING設(shè)置默認(rèn)編碼的智能,一定也就不會有問題了

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-24 16:24 by BeanSoft
    先說一下啊, 偶不熟悉 Eclipse 插件開發(fā), 不過關(guān)于你們這個 Tomcat 啟動的功能其實(shí)直接借鑒 Eclipse Tomcat 插件(Sysdeo): http://www.sysdeo.com/eclipse/tomcatplugin
    這個插件可以讓您無需離開 Eclipse 就可以進(jìn)行 Tomcat 的啟動, 停止, 發(fā)布, 重新載入 Web 應(yīng)用, 十分方便. 而且插件個頭也不大, 帶源碼. 我翻譯的中文版:
    截圖: http://gro.clinux.org/frs/download.php/1318/tomcatPlugin.gif
    下載: http://download.gro.clinux.org/beansoft/tomcatPluginV31.zip

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-24 16:38 by 海邊沫沫
    呵呵,在我沒有遇到SpringSide之前,我也是一直使用的這個插件。
    SpringSide自帶一個精簡版的Tomcat,而我的系統(tǒng)上另外還安裝有一個Tomcat,在使用SpringSide進(jìn)行開發(fā)的時候,我覺得我以上的幾個腳本更加能夠簡單的解決問題。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-24 16:41 by BeanSoft
    不好意思,我還以為你是SpringSide的開發(fā)人員呢...

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2006-12-25 09:02 by 江南白衣
    謝謝游俠阿,游俠的文檔寫得比開發(fā)人員還詳細(xì)。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2007-01-21 09:49 by hcom
    將ss自帶的tomcat注冊為eclipse外用的tomcat就可以了吧?不需要將tomcat啟動和關(guān)閉文件注冊為eclipse的外部工具了吧?

    我用的是eclipse+wtp

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2007-04-05 10:54 by 愛好者
    真沒有想到會有這么好的文章,這里先謝過了!我會支持下去的,我還是一個小小鳥,不知道什么時候會到達(dá)這樣程度,我得加油了。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2007-07-05 21:21 by 周黎明
    我的項(xiàng)目里src\java\resources\config文件夾下好像沒有hibernate.properties文件呀!

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2007-07-16 21:03 by 海邊沫沫
    我使用的是2.0 M1版,如果你使用的是2.0rc1版,這些目錄結(jié)構(gòu)就不一樣的。具體問題具體分析。

    # re: SpringSide開發(fā)實(shí)戰(zhàn)(二):修改數(shù)據(jù)庫、字符編碼和快速部署應(yīng)用程序  回復(fù)  更多評論   

    2008-02-29 19:12 by kongzong
    messages_zh_CN.properties的編輯是不是可以用Properties Editor插件搞定?
    主站蜘蛛池模板: 全部一级一级毛片免费看| 亚洲成在人线aⅴ免费毛片| 亚洲国产情侣一区二区三区| 亚洲午夜电影在线观看| 亚洲国产精品18久久久久久| jizz18免费视频| 久久精品毛片免费观看| 国产免费av片在线看| 免费在线观看黄网站| 亚洲AV无码乱码在线观看裸奔| 亚洲国产成人综合| 精品成人一区二区三区免费视频| 精品一区二区三区免费观看 | a级毛片毛片免费观看永久| 99久久人妻精品免费二区| 成人午夜18免费看| 亚洲婷婷五月综合狠狠爱| 亚洲伊人久久大香线蕉| 一进一出60分钟免费视频| 91高清免费国产自产| 亚洲成A人片在线观看无码3D| 无码久久精品国产亚洲Av影片| 亚洲日本VA中文字幕久久道具| 久久av免费天堂小草播放| 久久笫一福利免费导航| 亚洲国产天堂久久久久久| 亚洲欧洲校园自拍都市| 免费VA在线观看无码| 97视频免费观看2区| 国产嫩草影院精品免费网址| 亚洲电影国产一区| 羞羞网站免费观看| 日本片免费观看一区二区| 亚洲精品无码成人片在线观看| 亚洲伊人精品综合在合线| a在线观看免费视频| 国产午夜免费福利红片| 亚洲色图.com| 中文日本免费高清| 超pen个人视频国产免费观看| 亚洲成熟xxxxx电影|