<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    SpringSide默認(rèn)的數(shù)據(jù)庫(kù)是hsql,但是大部分開(kāi)發(fā)人員熟悉的數(shù)據(jù)庫(kù)是MySql,因此在實(shí)際開(kāi)發(fā)過(guò)程中,遇到的第一件事往往是修改數(shù)據(jù)庫(kù)。在SpringSide中修改數(shù)據(jù)庫(kù)很簡(jiǎn)單,還是以前一篇中創(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

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

    SpringSide非常注重對(duì)i18n的支持,因此創(chuàng)建國(guó)際化的應(yīng)用程序非常方便,只需要在src\mian\resources\i18n文件夾下加入相應(yīng)的資源文件即可。SpringSide默認(rèn)使用UTF-8編碼,這從web.xml中注冊(cè)的encodingFilter就可以看出來(lái),當(dāng)然也可以選擇自己喜歡的字符編碼,比如GB2312。如果要修改字符編碼,一定要記住有四個(gè)地方要保持一致:
    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ù)庫(kù)中的默認(rèn)字符集,需要在創(chuàng)建數(shù)據(jù)表的時(shí)候指定,如下:
    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頁(yè)面中的頁(yè)面編碼,如下:
    <%@?page?contentType="text/html;?charset=utf-8"?%>

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

    只要將這四個(gè)地方設(shè)置為一致,JSP頁(yè)面顯示出來(lái)就應(yīng)該不會(huì)是亂碼。歸根結(jié)底,是SpringSide在web.xml中注冊(cè)的encodingFilter幫了大忙。但是,當(dāng)需要從Struts的resource bundle中讀取message的時(shí)候,就不是那么方便了,因?yàn)樾枰獎(jiǎng)?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!

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


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

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

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

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

    17.JPG

    此外,很多時(shí)候不需要重新啟動(dòng)服務(wù)器,只需要把更改過(guò)的文件重新部署到服務(wù)器就可以了,在springside的根目錄目錄下面,misc\servers\tomcat-5.5.17\webapps文件夾中包含了所有的SpringSide項(xiàng)目。使用Windows自帶的命令行工具xcopy,可以將修改過(guò)的.class文件、配置文件、資源文件和.jsp文件部署到服務(wù)器中。創(chuàng)建一個(gè)批處理文件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ù)制更新過(guò)的文件,/y選項(xiàng)為不用詢問(wèn)是否覆蓋。

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

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


    評(píng)論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    我用的是eclipse+wtp

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

    2007-04-05 10:54 by 愛(ài)好者
    真沒(méi)有想到會(huì)有這么好的文章,這里先謝過(guò)了!我會(huì)支持下去的,我還是一個(gè)小小鳥(niǎo),不知道什么時(shí)候會(huì)到達(dá)這樣程度,我得加油了。

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

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

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

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

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

    2008-02-29 19:12 by kongzong
    messages_zh_CN.properties的編輯是不是可以用Properties Editor插件搞定?
    主站蜘蛛池模板: 久久精品国产精品亚洲人人 | 亚洲H在线播放在线观看H| 国产真人无遮挡作爱免费视频 | 久久久亚洲欧洲日产国码是AV| 亚洲国产精品自在拍在线播放| 成人AV免费网址在线观看| 成人片黄网站色大片免费观看APP| 男女猛烈激情xx00免费视频| 亚洲精品中文字幕| 香蕉大伊亚洲人在线观看| 亚洲精品视频免费看| 亚洲av片劲爆在线观看| 国产亚洲成av片在线观看| 亚洲精品国产高清嫩草影院| 国产伦精品一区二区三区免费下载| 蜜桃视频在线观看免费网址入口| 91av免费观看| 永久免费视频网站在线观看| 91人人区免费区人人| 亚洲免费观看网站| 日本最新免费网站| xxxxx免费视频| 国产又大又粗又长免费视频 | 亚洲午夜一区二区三区| 亚洲一区电影在线观看| 亚洲制服丝袜精品久久| 亚洲人成电影网站| 亚洲天堂免费在线| 亚洲av无码片在线观看| 亚洲国产最大av| 亚洲乱妇老熟女爽到高潮的片 | 日本免费一本天堂在线| 日韩一级免费视频| 四虎免费永久在线播放| 亚洲国产中文字幕在线观看 | 国产亚洲精彩视频| 免费无码专区毛片高潮喷水| 国产高清视频免费在线观看| 青青青国产手机频在线免费观看| 91短视频在线免费观看| 青青在线久青草免费观看|