雅典之夏的小站
          知人者智 自知者明 Fighting!!
          我來解決手機(jī)電池問題 :
          工具----設(shè)置------網(wǎng)絡(luò)設(shè)置-------運(yùn)營(yíng)商選擇------ 手動(dòng) -------選擇你使用的運(yùn)營(yíng)商------ok??。這樣大概要待機(jī)多1/3時(shí)間
          posted @ 2007-01-10 11:06 rkind 閱讀(251) | 評(píng)論 (0)編輯 收藏
          http://looline.blogspot.com/
          posted @ 2006-12-08 16:19 rkind 閱讀(259) | 評(píng)論 (0)編輯 收藏
          今天在試驗(yàn)了一下在Struts-config中配置數(shù)據(jù)源,雖然說這種方法并不推薦,
          操作步驟:
          ????? 首先導(dǎo)入幾個(gè)需要的包:首先自己連接數(shù)據(jù)庫(kù)用的包,因?yàn)槲矣玫氖荕ysql所以用的是“mm.mysql-2.0.4-bin.jar”,還有“commons-dbcp-1.2.1.jar”這個(gè)是數(shù)據(jù)源中要用到的包,還有“commons-pool-1.2.jar”這個(gè)不太清楚
          ???? 其次在Struts-config.xml中加入如下代碼
          ????<data-sources>
          ????????
          <data-source?key="rki"?type="org.apache.commons.dbcp.BasicDataSource">? //type代表類,rki表示當(dāng)有多個(gè)數(shù)據(jù)源時(shí)相
          //當(dāng)于一個(gè)索引,id值

          ????????????
          <set-property?property="driverClassName"?value="org.gjt.mm.mysql.Driver"?/>//連接mysql所需的類庫(kù)
          ????????????
          <set-property?property="url"?value="jdbc:mysql://172.20.0.40:3306/test?useUnicode=true&amp;characterEncoding=GBK"?/>
          ????????????
          <set-property?property="username"?value="root"?/>
          ????????????
          <set-property?property="password"?value="你的密碼"?/>
          ????????????
          <set-property?property="maxActive"?value="10"?/>
          ????????????
          <set-property?property="maxWait"?value="500"?/>
          ????????????
          <set-property?property="defaultAutoCommit"?value="false"?/>
          ????????????
          <set-property?property="defaultReadOnly"?value="false"?/>
          ????????
          </data-source>
          ????
          </data-sources>
          然后現(xiàn)在就可以在你的Action試驗(yàn)數(shù)據(jù)庫(kù)的連接,簡(jiǎn)單引用的代碼片斷
          datasource?=?getDataSource(request,?"rki");
          ????????????conn?
          =?datasource.getConnection();
          ????????????Statement?state?
          =?conn.createStatement();
          ????????????System.out.println(
          "hello");
          ????????????String?sql?
          =?"select?*?from?notice?where?title='test'";
          ????????????ResultSet?rs?
          =?state.executeQuery(sql);
          ????????????
          while?(rs.next())?{
          ????????????????request.getSession().setAttribute(
          "cont",
          ????????????????????????rs.getString(
          "content"));
          ????????????????System.out.println(
          "database?connect?true");
          ????????????}

          ????????????rs.close();
          在試驗(yàn)的過程中,老是不能連接,出“Initializing application data source”我仔細(xì)檢查過以上的配置并沒有問題,重啟了幾次服務(wù)器也不行,查了N多資料,最后居然自己好了,郁悶的要死
          一點(diǎn)總結(jié),
          ?????????? 可見在Struts中配置數(shù)據(jù)源要比別的連接方法要復(fù)雜,而且效率上來說也不一定要好,還不如自己通過自己編寫簡(jiǎn)單的訪問數(shù)據(jù)庫(kù)的類,或者是直接采用Tomcat的數(shù)據(jù)源要方便 一些。
          posted @ 2006-10-31 15:49 rkind 閱讀(378) | 評(píng)論 (0)編輯 收藏
          在Struts中可以通過<html:errors/>來顯示錯(cuò)誤信息,今天簡(jiǎn)單看了一點(diǎn),總結(jié)一下:
          1)如果是采用了formbean的validate的話,首先,struts-config.xml中Action需要加入validate="true"
          ??????其實(shí),在Actionform中的validate必須返回一個(gè)自己定義的Actionerrors,如例:
          ????public?ActionErrors?validate(ActionMapping?mapping,
          ????????????HttpServletRequest?request)?
          {
          ????????ActionErrors?errors?
          =?new?ActionErrors();
          ????????
          if?(this.content.equals(""))?{
          ????????????errors.add(
          "content",?new?ActionError("error.user"));
          ????????}

          ????????
          return?errors;
          ????}
          2)如果沒有采用,而是用Action驗(yàn)證的話,也需要先定義一個(gè)Actionerrors,然后再通過
          saveErrors(request,errors);把Actionerrrors保存到request中
          3)需要注意的
          ? a,每個(gè)ActionErrors都有一個(gè)String,和一個(gè)ActionError構(gòu)成,ActionError里面的String是和項(xiàng)目資源文件里的一一對(duì)應(yīng)的,String是和html:errors中property相對(duì)應(yīng)的。
          posted @ 2006-10-30 17:23 rkind 閱讀(568) | 評(píng)論 (0)編輯 收藏

          這就是在前面的簡(jiǎn)單應(yīng)用中,在view中,通過<bean:write name="myform" property="name">調(diào)用Actionform時(shí)出的問題,這個(gè)問題的直接原因很簡(jiǎn)單就是:找不到"myform"這個(gè)Bean,用網(wǎng)上的話說就是在Action里一般會(huì)request.setAttribute()一些對(duì)象,然后在轉(zhuǎn)向的jsp文件里(用tag或request.getAttribute()方法)得到這些對(duì)象并顯示出來。這個(gè)異常是說jsp要得到一個(gè)對(duì)象,但前面的Action里并沒有將對(duì)象設(shè)置到request(也可以是session、servletContext)里。可能是名字錯(cuò)了,請(qǐng)檢查jsp里的tag的一般是name屬性,或getAttribute()方法的參數(shù)值;或者是Action邏輯有問題沒有執(zhí)行setAttribute()方法就先轉(zhuǎn)向了。
          還有另外一個(gè)可能,純粹是jsp文件的問題,例如<logic:iterate>會(huì)指定一個(gè)id值,然后在循環(huán)里<bean:write>使用這個(gè)值作為name的值,如果這兩個(gè)值不同,也會(huì)出現(xiàn)此異常。(都是一個(gè)道理,request里沒有對(duì)應(yīng)的對(duì)象。)
          ”。
          ??????我對(duì)Actionform的機(jī)制不理解,心中的疑問:
          ??????1)如果ActionForm是Struts自動(dòng)封裝到Request中,那么我可以直接在view.jsp中,能過<bean:write>調(diào)用這個(gè)ActionForm,如果假設(shè)這種情況成立時(shí),那么Beanwrite中的bean名應(yīng)該是ActionForm的類名,還是在Struts-config.xml里給ActionForm定義的類名?
          ????? 2)如果沒有封裝的話,那么是不是需要在Action中把Actionform通過request.setAttribute("","")放到request中
          還是要放到Session中,
          ????? 我測(cè)試時(shí)候出的問題
          ?????? 有一次就是在1)的情況下測(cè)試成功的,但是以后再怎么試都不行,那次是引用的Struts-config.xml里給ActionForm定義的類名。非常奇怪,
          ????????還有就是2)的情況,測(cè)試中如果Action和Frombean在一個(gè)包下面,那么通過request.setAttribute("",""),就可以獲取到Bean,如果不是的話,有時(shí)候行,有時(shí)候不行,
          ??????? 如果通過request.getSession.setAttribute()設(shè)置ActionForm的話,每次都可以,他們的Scope肯定在一個(gè)Request中,那么為什么Session就可以,而Request不行。(結(jié)論:因?yàn)槭窃贏ctionfoward中設(shè)置了“redirect='true',這樣的話一跳轉(zhuǎn)時(shí),Request中的內(nèi)容都會(huì)被重置,所以不行,把這一句去掉就可以了”)

          posted @ 2006-10-30 14:07 rkind 閱讀(8532) | 評(píng)論 (1)編輯 收藏

          1、簡(jiǎn)介

          ????????????簡(jiǎn)單的頁(yè)面輸入并顯示的功能,有兩個(gè)頁(yè)面,
          ????????????upnews.jsp 提供輸入內(nèi)容的界面,show.jsp顯示已經(jīng)輸入的內(nèi)容

          2、源碼
          ??????struts-config,流程圖

          Snap3.jpg
          源代碼
          Strust-config.xml

          <form-bean?name="upNewsForm"?type="com.rkind.struts.form.UpNewsForm"?/>
          ????????<action?attribute="upNewsForm"?input="/upNews.jsp"?name="upNewsForm"?path="/upNews"?scope="request"?type="com.rkind.struts.action.UpNewsAction">
          ????????????
          <forward?name="suc"?path="/show.jsp"?redirect="true"?/>
          ????????
          </action>


          upnews.jsp
          ???? 都是eclispe自動(dòng)生成的
          <html:form?action="/upNews">
          ????????????content?:?
          <html:text?property="content"/><html:errors?property="content"/><br/>
          ????????????
          <html:submit/><html:cancel/>
          ????????
          </html:form>

          show.jsp這個(gè)簡(jiǎn)單就一句話,
          <bean:write?name="upNewsForm"?property="content"/>

          模型的部分 formbean,自動(dòng)生成,未做改動(dòng)
          Controller部分,核心啊
          UpNewsForm?upNewsForm?=?(UpNewsForm)?form;
          ????????
          //?TODO?Auto-generated?method?stub
          ????????String?te=upNewsForm.getContent();
          ????????
          try{
          ????????
          if(te.equals("")){
          ????????????
          return?new?ActionForward(mapping.getInput());????????
          ????????}

          ????????
          return?(mapping.findForward("suc"));
          ????????}
          catch(Exception?e){
          ????????????
          throw?new?RuntimeException(e.getMessage());

          好了,但是在測(cè)試的時(shí)候一直出問題,輸入以后不能正常,原因有2
          1、在鏈接時(shí)候,沒有加“/”導(dǎo)致不能正常連接
          2、forward?name="suc"?path="/show.jsp"?redirect="true"?起初沒有加redirect,不能跳轉(zhuǎn)。
          posted @ 2006-10-27 12:39 rkind 閱讀(496) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 昌图县| 宜章县| 弥渡县| 台北县| 永嘉县| 江达县| 聊城市| 康马县| 长白| 阿合奇县| 九寨沟县| 屏边| 河北省| 行唐县| 清水河县| 五大连池市| 中山市| 汨罗市| 莱州市| 德阳市| 萍乡市| 新巴尔虎右旗| 宿迁市| 大港区| 江安县| 巴林左旗| 迁西县| 思茅市| 新巴尔虎左旗| 班玛县| 仙游县| 曲松县| 建平县| 天长市| 洛南县| 抚宁县| 固安县| 枣强县| 抚松县| 讷河市| 玉山县|