2009年8月10日

          struts2 相關(guān)包--------------------------------------------------

          xwork-2.0.5.jar                          webwork的核心庫(kù)

          ognl-2.6.11.jar                           OGNL表達(dá)式語(yǔ)言,struts2支持該EL

          freemarker-2.3.8.jar                  表現(xiàn)層框架,定義了struts2的可視組件主題

          commons-beanutils.jar              提供對(duì)java 反射和自省API的包裝

          commons-fileupload.jar             文件上傳

          commons-io.jar                         輸入輸出,支持文件上傳

          commons-logging.jar                用于通用日志處理

          commons-validator.jar            提供了一個(gè)簡(jiǎn)單的,可擴(kuò)展的框架來(lái)在一個(gè)XML文件中定義校驗(yàn)器(校驗(yàn)方法)和校驗(yàn)規(guī)則

          struts2-spring-plugin-2.0.11.2.jar   struts2的spring插件

          struts2-core-2.0.11.2jar                  struts2 2.0.11.2的核心庫(kù)

           

          hibernate 相關(guān)包--------------------------------------------------                   

          antlr-2.7.6.jar                                  語(yǔ)法分析生成器

          backport-util-concurrent-3.1.jar     ehcache支持jar    

          cglib-nodep-2.1_3.jar                    是一種高性能,高質(zhì)量的代碼產(chǎn)生庫(kù), Hibernate 用它來(lái)實(shí)現(xiàn) po (persistent                                                          object)字節(jié)碼的動(dòng)態(tài)生成

          commons-collections.jar                包含了一些Apache開(kāi)發(fā)的集合類,功能比java.util.*強(qiáng)大

          commons-pool.jar

          commons-dbcp.jar                          DBCP數(shù)據(jù)庫(kù)連接池。

          c3p0-0.9.1.jar                                 是一個(gè)數(shù)據(jù)庫(kù)連接池,Hibernate可以配置為使用C3PO連接池。如果準(zhǔn)備用這個(gè)連接池,就需要這個(gè)jar包.

          dom4j-1.6.1.jar                               用來(lái)讀寫(xiě)XML文件的

          ehcache-1.5.0.jar                        ehcache緩存

          hibernate3.jar                              hibernate-3.3.1.GA jar

          jaxen-1.1.1.jar                              支持dom4j的xpath

          javassist-3.4.GA.jar                       是一個(gè)開(kāi)源的分析、編輯和創(chuàng)建Java字節(jié)碼的類庫(kù),用于 Java 的加載時(shí)反射系統(tǒng)

          jta-1.1.jar                                       JTA規(guī)范,當(dāng)Hibernate使用JTA的時(shí)候需要

          jsr107cache-1.0.jar                             ehcache支持jar

          mysql-connector-java-3.1.14-bin.jar  mysql驅(qū)動(dòng)jar

           

          spring 相關(guān)包--------------------------------------------------

          spring.jar                                     spring-2.5.5.jar

          slf4j-log4j12-1.5.0.jar                         slf4j log4j支持包

          log4j-1.2.15.jar

          slf4j-api-1.5.0.jar

           

          posted @ 2009-08-10 09:19 沉聲 閱讀(2190) | 評(píng)論 (0)編輯 收藏

          2009年4月13日

          層滑動(dòng)效果 (jquery)
          slideToggle(speed,[callback])
          通過(guò)高度變化來(lái)切換所有匹配元素的可見(jiàn)性,并在切換完成后可選地觸發(fā)一個(gè)回調(diào)函數(shù)。
          這個(gè)動(dòng)畫(huà)效果只調(diào)整元素的高度,可以使匹配的元素以“滑動(dòng)”的方式隱藏或顯示。

          --------------------------------------------------------------------------------

          Toggle the visibility of all matched elements by adjusting their height and firing an optional callback after completion.
          Only the height is adjusted for this animation, causing all matched elements to be hidden or shown in a "sliding" manner.
          返回值
          jQuery

          參數(shù)
          speed (String,Number) : 三種預(yù)定速度之一的字符串("slow", "normal", or "fast")或表示動(dòng)畫(huà)時(shí)長(zhǎng)的毫秒數(shù)值(如:1000)

          callback (Function) : (可選) 在動(dòng)畫(huà)完成時(shí)執(zhí)行的函數(shù)

          示例
          用600毫秒緩慢的將段落滑上或滑下 

          jQuery 代碼:

          $("p").slideToggle("slow"); 
          --------------------------------------------------------------------------------

          用200毫秒快速將段落滑上或滑下,之后彈出一個(gè)對(duì)話框 

          jQuery 代碼:

          $("p").slideToggle("fast",function(){
             alert("Animation Done.");
           }); 

          ------------------------------------------------------------------------------------------------------------------------------------
          獲取節(jié)點(diǎn)元素
          document.getElementById("p1").firstChild.firstChild.data;
          注:p1為層ID  層結(jié)構(gòu)為 <div><p> xxoo</p></div> 以上表達(dá)式值即為 XXOO
          ---------------------------------------------------------------------
          取得頁(yè)面元素絕對(duì)位置
           1 function getLTWH(o)
           2 {
           3     var oLTWH={"left":0,"top":0,"width":0,"height":0};
           4     if(document.all)
           5     {
           6         var   oRect=o.getBoundingClientRect();
           7         oLTWH.left=oRect.left-2;
           8         oLTWH.top=oRect.top-2;
           9     }else
          10     {
          11         oLTWH.left=o.offsetLeft;
          12         oLTWH.top=o.offsetTop;
          13     }
          14     oLTWH.width=o.offsetWidth;
          15     oLTWH.height=o.offsetHeight;
          16     return oLTWH;
          17 }
          alert(o.left);
          alert(o.top);
          alert(o.width);
          alert(o.height); 這樣就出來(lái)了。

          -------------------------------------------------------------------------------------------------------------------------
          路徑問(wèn)題 直接<%=request.getContextPath()%>/*就OK~
          posted @ 2009-04-13 16:13 沉聲 閱讀(106) | 評(píng)論 (0)編輯 收藏

          2009年3月26日

          一.常用表單基本取值方法(form1為表單名稱,TextBox1為控件ID,以文本框?yàn)槔?html控件與web服務(wù)器控件是一樣的)
                  1.form1.TextBox1.value 
                  2.var txt = document.all.TextBox1; 
                    txt.value
                  3.var txt = document.all["TextBox1"];
                    txt.value
                  4.document.getElementById("TextBox1");

          二.
          1.html復(fù)選框(name相同)
          表單: <input id="Checkbox1" type="checkbox" name="chk" value="123" />sss
                 <input id="Checkbox2" type="checkbox" name="chk" value="456"/>aaa
                 <input id="Checkbox3" type="checkbox" name="chk" value="789"/>bbb

          實(shí)現(xiàn)功能:遍歷html復(fù)選框,得到所選中項(xiàng)
             var oChks = document.all.chk; 
             for(var i=0; i<oChks.length; i++)   
             {   
                  if(oChks[i].checked)   
              alert(oChks[i].value);   
             } 

          2.html單選框(name相同)
          表單: <input id="Radio1" type="radio" name="rad" value="123"/>123
                 <input id="Radio2" type="radio" name="rad" value="456"/>456
          實(shí)現(xiàn)功能:遍歷html復(fù)選框,得到所選中項(xiàng)
          代碼同html復(fù)選框

          3.html下拉列表框
          表單:<select id="Select1" multiple>
              <option value=1>1</option>
              <option value=2>2</option>
                </select>
          實(shí)現(xiàn)功能:
             3.1得到所選中項(xiàng)的text和value值(選擇一項(xiàng))
              var selDrp = document.all.Select1;
              alert(selDrp.options[selDrp.selectedIndex].text);
              alert(selDrp.options[selDrp.selectedIndex].value);
             3.2得到所選中項(xiàng)的text和value值(選擇多項(xiàng))
              for(var j=0;j<selDrp.options.length;j++)
              {
                    if(selDrp.options[j].selected)
                    {
               alert(selDrp.options[j].value);
                    }
              }
          4.DropDownList控件與ListBox控件
          實(shí)現(xiàn)功能:得到所選中項(xiàng)的text和value值
          代碼同html下拉列表框

          5.CheckBoxList控件
          實(shí)現(xiàn)功能:得到所選中項(xiàng)的text
          代碼:
                  var chklist = document.all("CheckBoxList1"); 
                  var i = 0;   
                  for(i=0;i<chklist.rows.length;i++)   
                  {   
             var name = "CheckBoxList1_" + i;   
             var tmpChecked = document.all[name].checked; 
                          if(tmpChecked)   
                          {   
              alert(document.all[name].parentElement.innerText);   
                            
                           }   
                  }
          posted @ 2009-03-26 15:11 沉聲 閱讀(658) | 評(píng)論 (0)編輯 收藏

          2009年3月24日

          個(gè)人心得
           spring的DI就是 靠JAVA反射到指定的實(shí)體類中調(diào)用該類中的SET方法注入
          會(huì)根據(jù)property 的name屬性反射的相應(yīng)的類中找SET方法


          spring對(duì)AOP的支持(采用Annotation的方式)

          1、spring依賴庫(kù)
           * SPRING_HOME/dist/spring.jar
           * SPRING_HOME/lib/jakarta-commons/commons-logging.jar
           * SPRING_HOME/lib/log4j/log4j-1.2.14.jar
           * SPRING_HOME/lib/aspectj/*.jar
           
          2、采用Aspect定義切面

          2、在Aspect定義Pointcut和Advice

          4、啟用AspectJ對(duì)Annotation的支持并且將Aspect類和目標(biāo)對(duì)象配置到Ioc容器中

          注意:在這種方法定義中,切入點(diǎn)的方法是不被執(zhí)行的,它存在的目的僅僅是為了重用切入點(diǎn)
          即Advice中通過(guò)方法名引用這個(gè)切人點(diǎn)

          AOP:
           * Cross cutting concern
           * Aspect
           * Advice
           * Pointcut
           * Joinpoint
           * Weave
           * Target Object
           * Proxy
           * Introduction

          spring的普通屬性注入 
           參見(jiàn):spring文檔3.3章節(jié)
           
          什么是屬性編輯器,作用?
           * 自定義屬性編輯器,spring配置文件中的字符串轉(zhuǎn)換成相應(yīng)的對(duì)象進(jìn)行注入
           spring已經(jīng)有內(nèi)置的屬性編輯器,我們可以根據(jù)需求自己定義屬性編輯器
           
           * 如何定義屬性編輯器?
            * 繼承PropertyEditorSupport類,覆寫(xiě)setAsText()方法,參見(jiàn):UtilDatePropertyEditor.java
            * 將屬性編輯器注冊(cè)到spring中,參見(jiàn):applicationContext-editor.xml
            
          依賴對(duì)象的注入方式,可以采用:
           * ref屬性
           * <ref>標(biāo)簽
           * 內(nèi)部<bean>來(lái)定義
           
          如何將公共的注入定義描述出來(lái)?
           * 通過(guò)<bean>標(biāo)簽定義公共的屬性,指定abstract=true
           * 具有相同屬性的類在<bean>標(biāo)簽中指定其parent屬性
           
           參見(jiàn):applicationContext-other.xml
              
            
             

          posted @ 2009-03-24 16:00 沉聲 閱讀(163) | 評(píng)論 (0)編輯 收藏

          2009年3月19日

          雜文
          Session 是非線程安全的
          所以一個(gè)業(yè)務(wù)請(qǐng)求來(lái)就打開(kāi)一個(gè)session 用完就立即關(guān)閉

          采用get加載數(shù)據(jù),如果數(shù)據(jù)庫(kù)中不存在相應(yīng)的數(shù)據(jù),返回null

          在刪除和修改時(shí),一般都先將要操作的數(shù)據(jù)加載上之后再進(jìn)行刪除和修改。

          get和load只能根據(jù)主鍵加載,如要使用別的方式 則需借助HQL查詢


          查詢時(shí) from后面區(qū)分大小寫(xiě)(對(duì)應(yīng)的是實(shí)體類 而不是表名)

          hibernate基本映射

          實(shí)體類---表
          實(shí)體類中的普通屬性---表字段

          采用<class>標(biāo)簽映射成數(shù)據(jù)庫(kù)表,通過(guò)<property>標(biāo)簽將普通屬性映射成表字段
          所謂普通屬性指不包括自定義類、集合和數(shù)組等

          注意:如果實(shí)體類和實(shí)體類中的屬性和sql中的關(guān)鍵字重復(fù),必須采用table或column重新命名

          實(shí)體類的設(shè)計(jì)原則:
           * 實(shí)現(xiàn)一個(gè)默認(rèn)的(即無(wú)參數(shù)的)構(gòu)造方法(constructor)
           * 提供一個(gè)標(biāo)識(shí)屬性(identifier property)(可選)
           * 使用非final的類 (可選)
           * 為持久化字段聲明訪問(wèn)器(accessors) 

          主鍵生成策略:
           uuid、native和assigned


          hibernate一級(jí)緩存
           
          一級(jí)緩存很短和session的生命周期一致,一級(jí)緩存也叫session級(jí)的緩存或事務(wù)級(jí)緩存

          那些方法支持一級(jí)緩存:
           * get()
           * load()
           * iterate(查詢實(shí)體對(duì)象)
           
          如何管理一級(jí)緩存:
           * session.clear(),session.evict()
           
          如何避免一次性大量的實(shí)體數(shù)據(jù)入庫(kù)導(dǎo)致內(nèi)存溢出
           * 先f(wàn)lush,再clear
           
          如果數(shù)據(jù)量特別大,考慮采用jdbc實(shí)現(xiàn),如果jdbc也不能滿足要求可以考慮采用數(shù)據(jù)本身的特定導(dǎo)入工具     


          hibernate二級(jí)緩存

          二級(jí)緩存也稱進(jìn)程級(jí)的緩存或SessionFactory級(jí)的緩存,二級(jí)緩存可以被所有的session共享
          二級(jí)緩存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二級(jí)緩存

          二級(jí)緩存的配置和使用:
           * 將echcache.xml文件拷貝到src下
           * 開(kāi)啟二級(jí)緩存,修改hibernate.cfg.xml文件
            <property name="hibernate.cache.use_second_level_cache">true</property>
           * 指定緩存產(chǎn)品提供商,修改hibernate.cfg.xml文件
            <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
           * 指定那些實(shí)體類使用二級(jí)緩存(兩種方法)
            * 在映射文件中采用<cache>標(biāo)簽
            * 在hibernate.cfg.xml文件中,采用<class-cache>標(biāo)簽
            
          二級(jí)緩存是緩存實(shí)體對(duì)象的

          了解一級(jí)緩存和二級(jí)緩存的交互  
            

          采用編程式事務(wù)

          1、getCurrentSession()與openSession()的區(qū)別?
           * 采用getCurrentSession()創(chuàng)建的session會(huì)綁定到當(dāng)前線程中,而采用openSession()
             創(chuàng)建的session則不會(huì)
           * 采用getCurrentSession()創(chuàng)建的session在commit或rollback時(shí)會(huì)自動(dòng)關(guān)閉,而采用openSession()
             創(chuàng)建的session必須手動(dòng)關(guān)閉
            
          2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
           * 如果使用的是本地事務(wù)(jdbc事務(wù))
           <property name="hibernate.current_session_context_class">thread</property>
           * 如果使用的是全局事務(wù)(jta事務(wù))
           <property name="hibernate.current_session_context_class">jta</property>  


               
               

          posted @ 2009-03-19 11:11 沉聲 閱讀(171) | 評(píng)論 (0)編輯 收藏

          2009年2月18日

          javascript中的Split使用方法與技巧
          使用方法:
          myArray=string.split("|");
          example:
          <scriptlanguage="JavaScript"> 
          <!-- 
          functionRequest(strName) 
          { 
          varstrHref
          ="www.nextway.cn/index.htm?a=1&b=1&c=Split實(shí)例"; 
          varintPos
          =strHref.indexOf("?"); 
          varstrRight
          =strHref.substr(intPos+1); 
          vararrTmp
          =strRight.split("&"); 
          for(vari=0;i<arrTmp.length;i++) 
          { 
          vararrTemp
          =arrTmp[i].split("="); 
          if(arrTemp[0].toUpperCase()==strName.toUpperCase())returnarrTemp[1]; 
          }
           
          return""; 
          }
           
          alert(Request(
          "a")); 
          alert(Request(
          "b")); 
          alert(Request(
          "c")); 
          //--> 
          </script>
          posted @ 2009-02-18 12:28 沉聲 閱讀(169) | 評(píng)論 (0)編輯 收藏

          2009年1月16日

          s:property 等類似標(biāo)簽, 訪問(wèn)的只是bean中的GET SET方法 而非變量。
          //******************************************************************************
          使用equals時(shí),如果需要與常量比較,那么將常量放在前面,這樣會(huì)防止出現(xiàn)nullPoint異常。

          if(null == username || username.length()<6||username.length()>10) 第一個(gè)判斷 null==username 可以防止用戶直

          接通過(guò)地址訪問(wèn)action 導(dǎo)致的 nullpoint異常。


          //******************************************************************************
          常用驗(yàn)證
          <field name="password"> 
          <field-validator type="requiredstring"> 
          <param name="trim">true </param> 
          <message>密碼不能為空 </message> 
          </field-validator> 

          <field-validator type="stringlength"> 
          <param name="minLength"></param> 
          <param name="maxLength">16 </param> 
          <message>密碼必須在${minLength} 到 ${maxLength}之間 </message> 
          </field-validator> 
          </field> 


          <!-- 驗(yàn)證重復(fù)密碼 -->
          //*****************************************************************************************

          <field name="repassword"> 
          <field-validator type="requiredstring"> 
          <param name="trim">true </param> 
          <message>重復(fù)密碼不能為空 </message> 
          </field-validator> 

          <field-validator type="fieldexpression"> 
                      
          <param name="expression">password == repassword </param> 
                      
          <message>兩次輸入的密碼不一致 </message> 
                  
          </field-validator> 
          </field>
          <field name="customer.csaAddress.zipcode">
            
          <field-validator type="requiredstring">
             
          <message>CSA Zip required!</message>
            
          </field-validator>
            
          <field-validator type="regex">
             
          <param name="expression">^\d{5}$</param>
             
          <message><![CDATA[CSA Zip must 5 digits ]]></message>
            
          </field-validator>
           
          </field>

           

           Calendar  沒(méi)有構(gòu)造方法 需使用Calendar c1=Calendar.getInstance(); 實(shí)例化。
          //*****************************************************************************************

          傳參時(shí)中文亂碼解決方式
          修改位于Tomcat/conf目錄下的server_xml文件如下
          <Connector port="8080" protocol="HTTP//1.1"
            maxThreads="150" connectionTimeout="20000"
            redirectPort="8443" URIEncoding="UTF-8"/>
          編寫(xiě)過(guò)濾器 建立一個(gè)新類 此類需實(shí)現(xiàn) Java-servlet-Filter接口
          在類中的doFilter方法中增加
           request.SetCharacterEncoding("utf-8");
           Param.doFilter(request,response);
          再修改web.xml 加入

          <Filter>


          <Filter-name>Fname</Filter-name>
          <Filter-class>"類所在位置"</Filter-class>
          </Filter>
          <filter-mapping>
            
          <filter-name>Fname</filter-name>
            
          <url-pattern>/*</url-pattern>
           
          </filter-mapping>


          //*****************************************************************************************
          使用ModelDriven時(shí) 一定要先實(shí)例化... 一定啊一定。 開(kāi)了瓶子蓋兒才能往里注水  不是么。
          //*****************************************************************************************
          今天遇到個(gè)問(wèn)題  action中沒(méi)有指定method 但是它不走默認(rèn)的execute方法 直接跳轉(zhuǎn)到INPUT指定的頁(yè)面  百思不得其解  后在那張頁(yè)面加入了
          <s:fieldError> <s:actionError>  顯示“Invalid field value for field "stu_arriveDate". ” 這才知道是有數(shù)據(jù)類型錯(cuò)誤
          //*****************************************************************************************
          setBean時(shí)使用  ServletActionContext.getRequest().setAttribute(String, Object);
          setList時(shí)使用 ActionContext.getContext().getSession().put(String ,  Object);

          posted @ 2009-01-16 09:25 沉聲 閱讀(233) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
           
          主站蜘蛛池模板: 保山市| 商丘市| 扬州市| 北宁市| 合作市| 漳平市| 搜索| 乐陵市| 亚东县| 重庆市| 神木县| 安庆市| 五台县| 岳普湖县| 庆阳市| 台江县| 达拉特旗| 凤翔县| 吴忠市| 临清市| 兴宁市| 广西| 如东县| 确山县| 三原县| 宾川县| 灵台县| 秦皇岛市| 楚雄市| 阜康市| 卢龙县| 曲阳县| 唐海县| 安西县| 湖北省| 祁门县| 兰坪| 肥西县| 奉贤区| 裕民县| 连云港市|