2006年9月21日

          在IBM的JDK環(huán)境下進(jìn)行JVM內(nèi)存監(jiān)控的問題

          錯(cuò)誤信息如下:
          java.lang.NoClassDefFoundError: sun.management.ManagementFactory

          處理:

          sun.management.ManagementFactory替換成java.lang.management.ManagementFactory  

          因?yàn)?/span>ibmjdk沒有sun.management.ManagementFactory這個(gè)對(duì)象

          posted @ 2010-11-25 12:01 JGAO編程隨筆 閱讀(565) | 評(píng)論 (0)編輯 收藏

          oracel PreparedStatement的setString問題

          錯(cuò)誤信息如下:

          超過最大長度限制

          處理:

          只能插入666個(gè)中文字符。


          或者更新到最新的
          oracle驅(qū)動(dòng)包

          posted @ 2010-11-25 12:00 JGAO編程隨筆 閱讀(270) | 評(píng)論 (0)編輯 收藏

          servicemix部署到websphere中,需注意的問題

          1derby.jar包可能沖突,需刪除項(xiàng)目中的該包

          2MBean調(diào)用問題

             Websphere的MBean注冊(cè)路徑包括cell,nodeName和processName,具體可以銅鼓jconsole連接來查看MBean注冊(cè)的全路徑。這三個(gè)值可以通過Websphere的com.ibm.websphere.management.AdminServiceFactory這個(gè)對(duì)象來獲取,spring中的配置如下:
          <!-- 用于獲取websphereMBean名稱的cell,node,process -->

          <bean id="adminService" class="com.ibm.websphere.management.AdminServiceFactory" factory-method="getAdminService"/>

          <bean id="adminService.cellName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="adminService.nodeName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="adminService.processName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>

          <bean id="websphereNamingStrategy" class="com.des.engine.mbean.WebsphereNamingStrategy">

          <property name="cellName" ref="adminService.cellName"/>

          <property name="nodeName" ref="adminService.nodeName"/>

          <property name="processName" ref="adminService.processName"/>

          </bean>

          WebsphereNamingStrategy為自己創(chuàng)建的對(duì)象就包括那三個(gè)屬性

          3:安全問題

          出現(xiàn)如下錯(cuò)誤,Caused by: javax.management.JMRuntimeException: ADMN0022E: 由于憑證不足或憑證為空,無法對(duì) org.apache.servicemix:Name=ServiceMgtImpl,cell=dvpbNode02Cell,Type=SystemService,ContainerName=ServiceMix,node=dvpbNode02,process=server1 MBean  retrieveServiceList 操作進(jìn)行訪問。

              該問題是因?yàn)樵O(shè)置了安全控制,把控制臺(tái)的【安全性->安全管理、應(yīng)用程序和基礎(chǔ)結(jié)構(gòu)】里面的所以安全配置都去掉,然后重新啟動(dòng)服務(wù)器主機(jī)(注意是重啟主機(jī),不然安全設(shè)置不起作用),再啟動(dòng)websphere服務(wù)應(yīng)該就可以了,還有就是servicemix的應(yīng)用要跟websphere一起啟動(dòng),不要等websphere啟動(dòng)后再到控制臺(tái)啟動(dòng)

          posted @ 2010-11-25 11:58 JGAO編程隨筆 閱讀(892) | 評(píng)論 (2)編輯 收藏

          ResultSet內(nèi)存溢出OutOfMemory問題

          錯(cuò)誤信息如下:

          jdbc在操作oracle海量數(shù)據(jù)的時(shí)候用ResultSet獲取所有的返回?cái)?shù)據(jù)出現(xiàn)內(nèi)存溢出

          處理:
          出錯(cuò)的原因是ResultSet用的是可滾動(dòng)結(jié)果集,正常情況下ResultSet是指針指向數(shù)據(jù)庫的數(shù)據(jù),本身是不存儲(chǔ)數(shù)據(jù)庫的數(shù)據(jù)的,默認(rèn)情況下就算是提交的sql能查詢處上億條的數(shù)據(jù)也是不消耗內(nèi)存的,但是如果用的是可滾動(dòng)結(jié)果集的ResultSet情況就不一樣了,ORACLE 是不支持可滾動(dòng)結(jié)果集的,那么我們用JDBC得到一個(gè)可滾動(dòng)的結(jié)果集就是由JDBC自己支持的,也就是說結(jié)果集是要存放在內(nèi)存中的,所以在海量數(shù)據(jù)的情況下也就是要消耗大量內(nèi)存的,因此造成內(nèi)存溢出也就是正常的了,所以如果是海量數(shù)據(jù)的話就不要用可滾動(dòng)結(jié)果集就可以了。

          posted @ 2009-06-23 21:19 JGAO編程隨筆 閱讀(2113) | 評(píng)論 (0)編輯 收藏

          com.ibm.websphere.ce.cm.StaleConnectionException: [ibm][db2][jcc][t4][2030][11211] 檢測到了通信錯(cuò)誤

          錯(cuò)誤信息如下:

          com.ibm.websphere.ce.cm.StaleConnectionException: [ibm][db2][jcc][t4][2030][11211]

          檢測到了通信錯(cuò)誤。所使用的通信協(xié)議:TCP/IP"n所使用的通信 APISOCKETS

          檢測到錯(cuò)誤的位置:Reply.fill()"n用于檢測錯(cuò)誤的通信功能:InputStream.read()

          特定于協(xié)議的錯(cuò)誤代碼數(shù)據(jù)不足、 0。消息:null"n   

          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)"n     

          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67)"n    at

          sun.reflect.DelegatingConstructorAccessorImpl.newInstance

          (DelegatingConstructorAccessorImpl.java:45)"n

          at java.lang.reflect.Constructor.newInstance(Constructor.java:522)"n  

          at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper

          (GenericDataStoreHelper.java:523)"n   

          at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(GenericDataStoreHelper.java:578)"n      

          at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:909)"n 

          at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeQuery(WSJdbcStatement.java:898)"n   

          at com.newland.bi.util.db.DBUtil.executeQuery(Unknown Source)"n

          at com.newland.bi.util.db.DBUtil.executeSql(Unknown Source)"n     

          at com.newland.bi.dao.jdbc.DaoImpl.executeQuery(DaoImpl.java:64)"n   

          at com.newland.bi.service.report.exp.dao.ReportExpDao.getExpList(ReportExpDao.java:72)"n 

          at com.newland.bi.service.report.exp.manage.ReportExpMgt.runExport(ReportExpMgt.java:91)"n   

          at com.newland.bi.service.report.exp.servlet.ReportExp1Servlet$1.run(ReportExp1Servlet.java:97)"n      

          at java.util.TimerThread.mainLoop(Timer.java:537)"n       at java.util.TimerThread.run(Timer.java:487)"n

          處理:

          出錯(cuò)的原因可能是防火墻問題,websphere應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之間是否存在防火墻

          防火墻是否會(huì)設(shè)置多久沒活動(dòng)的連接就自動(dòng)斷開掉,如果是這樣的話就會(huì)有問題,因?yàn)?/span>websphere上面的數(shù)據(jù)庫連接池可能有一段時(shí)間沒連接而被防火墻斷掉了

          但對(duì)于連接池本身根本就不知道該連接是否還可用,所以web應(yīng)用從連接池獲取的連接可能就是已經(jīng)斷開的了,所以就可能會(huì)出現(xiàn)日記中的錯(cuò)誤問題


           

          posted @ 2009-06-23 21:14 JGAO編程隨筆 閱讀(7427) | 評(píng)論 (1)編輯 收藏

          Timer.schedule和Timer.scheduleAtFixedRate的區(qū)別

          schedulescheduleAtFixedRate的區(qū)別在于,如果指定開始執(zhí)行的時(shí)間在當(dāng)前系統(tǒng)運(yùn)行時(shí)間之前,scheduleAtFixedRate會(huì)把已經(jīng)過去的時(shí)間也作為周期執(zhí)行,而schedule不會(huì)把過去的時(shí)間算上。

          posted @ 2009-06-23 21:13 JGAO編程隨筆 閱讀(1003) | 評(píng)論 (0)編輯 收藏

          cxf找不到類org.apache.axis.soap.MessageFactoryImpl出錯(cuò)

           

          錯(cuò)誤信息如下:

          Caused by: java.lang.ClassNotFoundException: org.apache.axis.soap.MessageFactoryImpl

              at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

              at java.security.AccessController.doPrivileged(Native Method)

              at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

              at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:50)

              ... 10 more

          處理:

          原因是調(diào)用了axis soap.MessageFactoryImpl,cxf應(yīng)該用的是sun
               在注冊(cè)安全攔截器之前執(zhí)行下面代碼就可以了

          System.setProperty("javax.xml.soap.MessageFactory", "com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");

          posted @ 2009-06-23 21:10 JGAO編程隨筆 閱讀(1281) | 評(píng)論 (0)編輯 收藏

          瀏覽器下載txt文件問題

          我們寫程序的時(shí)候可能會(huì)想用open或者<a>來下載一個(gè)txt文件,但我們會(huì)發(fā)現(xiàn)我們用瀏覽器下載這個(gè)txt文件的時(shí)候老是在瀏覽器里面直接打開了,而不是提示下載,這樣的話如果txt文件的內(nèi)容非常多的話肯定是不行的,可能就會(huì)導(dǎo)致瀏覽器掛掉,客戶機(jī)器死機(jī)的問題
          現(xiàn)整理了個(gè)解決辦法,代碼如下:

          1.下載頁面
          open(action執(zhí)行頁面,'iframeName','');
          2.action執(zhí)行頁面
          <id="tempB" style="display:none" href="#" onclick="">&nbsp;</a>
          <iframe width=0 height=0 id="hideIframe" name="hideIframe"></iframe>
          <script>
              
          var n=0;
              
          function go(url){
                  
                  n
          ==0?new function()
                  
          {
                      frames(
          "hideIframe").location=url,n=1
                  }
          :null;
                  
                  document.all(
          "hideIframe").readyState!="complete"?setTimeout(go,10):so();
                  
                  
          function so()
                  
          {
                      frames(
          "hideIframe").document.execCommand("SaveAs"),n=0
                  }
          ;
              }

              
              
          var tempB = document.getElementById("tempB");
              
          <%
                  
          if(path.toLowerCase().indexOf(".txt")>=0){
              
          %>
              tempB.attachEvent('onclick',
          function(){go('<%=request.getContextPath()+"/tempfile/1.txt">');});
              
          <%
                  }
          else{
              
          %>
              tempB.attachEvent('onclick',
          function(){open('<%=request.getContextPath()+"/tempfile/1.xls">','','');});
              
          <%
                  }

              
          %>
              tempB.click();
          </script>


          posted @ 2008-11-23 19:28 JGAO編程隨筆 閱讀(758) | 評(píng)論 (0)編輯 收藏

          websphere部署war應(yīng)用失敗

          websphere部署war應(yīng)用失敗正常原因是web.xml的節(jié)點(diǎn)定義循序問題,或者一些空格,字符原因造成的
          可能先定義完所有的servlet后再定義所有的servlet mapping就沒問題了

          posted @ 2008-08-23 15:27 JGAO編程隨筆 閱讀(641) | 評(píng)論 (0)編輯 收藏

          通過jsf事件轉(zhuǎn)向后的頁面中文亂碼

          那個(gè)轉(zhuǎn)向后的頁面已經(jīng)有用gb2312的編碼了
          可能原因是在java類里面調(diào)用了((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).getWriter().write("");
          然后再轉(zhuǎn)向某個(gè)頁面,這樣可能導(dǎo)致編碼格式?jīng)_突,導(dǎo)致亂碼
          可以先給resonse設(shè)置下編碼格式,然后在write
          HttpServletResponse httpServletResponse = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
          httpServletResponse.setContentType("text/html; charset=gb2312");
          httpServletResponse.setCharacterEncoding("gb2312");
          httpServletResponse.getWriter().write("");
          這樣應(yīng)該就可以解決了

          posted @ 2008-06-26 23:46 JGAO編程隨筆 閱讀(594) | 評(píng)論 (0)編輯 收藏

          websphere的servlet配置無效問題

          C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\app-bi2Node01Cell\applications\appname.ear\deployments\appname\appname.war\WEB-INF\web.xml 該目錄下的web.xml的修改才是有效

          應(yīng)用程序發(fā)布的目錄下的那個(gè)web.xml添加的servlet配置是無效的

          posted @ 2008-04-28 18:06 JGAO編程隨筆 閱讀(1491) | 評(píng)論 (3)編輯 收藏

          jsp的request.getParameter獲取不到表單參數(shù)

          可能原因:

          1: form表單中的控件沒有定義name屬性

          2: form表單中的控件被設(shè)置成disabled

          3: form表單的enctype="multipart/form-data"是一種用于上傳文件的表單

          解決方法:

          對(duì)于第三種情況我們直接request.getParameter來取參數(shù)值是取不到的

          我們可以借用apache的上傳組件來解決

          用到jarcommons-fileupload-1.1.1.jar

          import org.apache.commons.fileupload.FileItem;

          import org.apache.commons.fileupload.FileItemFactory;

          import org.apache.commons.fileupload.FileUploadException;

          import org.apache.commons.fileupload.disk.DiskFileItemFactory;

          import org.apache.commons.fileupload.servlet.ServletFileUpload;

              /**

               *獲取各種類型表單的表單參數(shù)

               *@paramrequest HttpServletRequest請(qǐng)求對(duì)像

               * @paramparamName 參數(shù)名

               *@return

               *@throwsFileUploadException

               */

              publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{

              boolean isMultipart = ServletFileUpload.isMultipartContent(request);

              if(isMultipart==true){

                  FileItemFactory factory = new DiskFileItemFactory();

                  ServletFileUpload upload = new ServletFileUpload(factory);

                  List fileItemList = upload.parseRequest(request);

                  if(fileItemList!=null){

                     for(Iterator itr=fileItemList.iterator();itr.hasNext();){

                         FileItem fileItem = (FileItem)itr.next();

                         if(fileItem.getFieldName().equalsIgnoreCase(paramName)){

                             return new String(fileItem.getString().getBytes("ISO8859-1"))//中文轉(zhuǎn)碼

                         }

                     }

                  }

              }else{

                  return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉(zhuǎn)碼

              }

              return"";

              }

          posted @ 2007-12-14 19:07 JGAO編程隨筆 閱讀(14905) | 評(píng)論 (6)編輯 收藏

          初學(xué)jsf自定義標(biāo)簽時(shí)遇到的問題總結(jié)

          1.定義一個(gè)標(biāo)簽要用到兩個(gè)java類,這個(gè)跟jsp的自定義標(biāo)簽有點(diǎn)不一樣
            第一個(gè)類繼承UIComponentTag, 用于定義標(biāo)簽的屬性和設(shè)置標(biāo)簽的所有屬性值到控件的map屬性attributes或valueBinding中
            第二個(gè)類繼承UIInput或者UIOutput,用于渲染標(biāo)簽的內(nèi)容,真正打印標(biāo)簽內(nèi)容的地方就在這里
             
          2.這兩個(gè)類是怎么聯(lián)系的
           我們需要像定義jsf的bean的影射文件一樣,在faces-config.xml或者自己定義的xml文件里面定義第二個(gè)類
           如:
           
          <faces-config>
            
          <!--分頁標(biāo)簽-->
            
          <component>
              
          <component-type>pageTag</component-type>
              
          <component-class>com.jsf.PageComponent</component-class>
            
          </component>
            
            
          </faces-config>
            然后第一個(gè)類要實(shí)現(xiàn)父類的一個(gè)方法 public String getComponentType();從這里返回一個(gè)字符串pageTag,這樣就跟第二個(gè)類聯(lián)系起來了

          3.標(biāo)簽屬性的定義
            標(biāo)簽屬性的定義一般都是可轉(zhuǎn)化為字符串的類型的,除非你還是用
          <%=rowList%>這種jsp賦值的方式
            別以為你定義的一個(gè)List類型的屬性可以用jsf的EL表達(dá)式可以直接賦值進(jìn)來,EL表達(dá)式傳進(jìn)來以后屬性接收的就是這一串EL表達(dá)式
            所以就是說你的屬性就是要字符串類型的

          4.那么jsf自定義標(biāo)簽是怎么接收EL表達(dá)式綁定的列表的
           先通過父類的isValueReference(屬性值),來判斷該屬性的值是否是一個(gè)EL的表達(dá)式
           如果是則通過獲取綁定值得方式把真正的屬性的值設(shè)置到標(biāo)簽父類的valueBinding對(duì)像中
           否則直接把屬性的值添加到標(biāo)簽父類的attributes對(duì)像中
            if (isValueReference(屬性值)) {
              javax.faces.el.ValueBinding vb = Util.getValueBinding(value.toString());
              component.setValueBinding(name, vb); //component就是標(biāo)簽對(duì)像,name就是標(biāo)簽的屬性名稱
           } else {
              component.getAttributes().put(name, 屬性值);
           }

           這就是個(gè)設(shè)置屬性值的過程,可以在第1點(diǎn)說的第一個(gè)類里面的protected void setProperties(UIComponent component)方法
          5.現(xiàn)在知道標(biāo)簽屬性值的作用了嗎
           是的標(biāo)簽屬性值只不過是起個(gè)作用而已,而不是我們真正所要的值
           也就是說我們是不能從這些屬性中直接取值的
           
          6.那么我們?cè)趺慈傩缘恼嬲闹的?br />  可以先從第4點(diǎn)說的標(biāo)簽父類的attributes對(duì)像中取值
           如果取不到值那就到標(biāo)簽父類的valueBinding對(duì)像中取值
           說白了就是,通過第4步我們屬性的真正的值不是放在attributes就是在valueBinding中
           Object obj = component.getAttributes().get(name); //component就是標(biāo)簽對(duì)像,name就是標(biāo)簽的屬性名稱
           if (obj == null) {
             ValueBinding vb = component.getValueBinding(name);
             if (vb != null) {
              return vb.getValue(context);
             } else {
              return null;
             }
           }
           這個(gè)過程就是取屬性值的過程,在第1點(diǎn)說的第二個(gè)類里面進(jìn)行
           
          7.現(xiàn)在屬性值也可以取到了,那么我們要怎么打印標(biāo)簽的內(nèi)容呢
            我們可以在第二個(gè)類的encodeBegin或者encodeEnd中進(jìn)行
            public void encodeBegin(FacesContext context) throws IOException
            public void encodeEnd(FacesContext context) throws IOException
           
            取屬性值的過程也可以在這里進(jìn)行,取完值后就是把值組裝到標(biāo)簽內(nèi)容的相應(yīng)位置中就完了
            
            基本上就是這幾點(diǎn)

          posted @ 2007-11-21 19:21 JGAO編程隨筆 閱讀(2153) | 評(píng)論 (4)編輯 收藏

          ajax4jsf跟outputStream.write沖突?

          我在項(xiàng)目中引入ajax4jsf框架
          web.xml中加入

           <filter>
                  
          <display-name>Ajax4jsf Filter</display-name>
                  
          <filter-name>ajax4jsf</filter-name>
                  
          <filter-class>org.ajax4jsf.Filter</filter-class>
            
          </filter>
            
          <filter-mapping> 
                
          <filter-name>ajax4jsf</filter-name>
                
          <servlet-name>Faces Servlet</servlet-name>
                
          <dispatcher>REQUEST</dispatcher>
                
          <dispatcher>FORWARD</dispatcher>
                
          <dispatcher>INCLUDE</dispatcher>
           
          </filter-mapping>


          結(jié)果以前的輸出文件到客戶端的代碼就出問題了

                          InputStream fileInputStream = mgt.downloadToStream(result_pathEl.getTextTrim());
                          mgt.deleteFile(result_pathEl.getTextTrim());
          //刪除臨時(shí)的報(bào)表文件
                          JSFUtil.setSessionAttribute(sessionId, "true");
                          
          if( fileInputStream == null ){
                            System.out.println(
          "==========get inputstream is null========");
                          }


                          OutputStream o 
          = response.getOutputStream();
                          response.reset();
                          response.setContentType( 
          "APPLICATION/OCTET-STREAM" );
                          response.setHeader( 
          "Content-Disposition""attachment;filename=\"" + "exportExcel.xls""\"" );

                          
          int length;
                          
          byte buf[] = new byte[1024];

                          
          while ( ( length = fileInputStream.read( buf, 01024 ) ) != -1 ) {
                              o.write( buf, 
          0, length );
                          }

                          o.flush();
                          o.close();
                          fileInputStream.close();


          提示錯(cuò)誤如下:主要是o.write出問題

          java.lang.NullPointerException
                  at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper$By
          teArrayServletOutputStream.write(FilterServletResponseWrapper.java:290)


          把web.xml中的ajax4jsf的filter給去掉后,一切又恢復(fù)正常

          有那位仁兄遇到同樣情況的嗎?

          posted @ 2007-11-19 20:16 JGAO編程隨筆 閱讀(450) | 評(píng)論 (1)編輯 收藏

          取程序的絕對(duì)路徑問題

          在本地tomcat5中這樣沒問題
          request.getRealPath("/")+"report/config/configFile/"+priv_id+".xml"

          但是發(fā)布到websphere6后就出問題了
          要改成
          request.getRealPath("/")+"/report/config/configFile/"+priv_id+".xml"

          就是report前要加個(gè)"/" 斜杠,加了后tomcat5下也是正確的

          posted @ 2007-11-09 18:25 JGAO編程隨筆 閱讀(252) | 評(píng)論 (0)編輯 收藏

          程序從oracle移植到db2遇到的問題

           

          1.jdk環(huán)境問題

          jdk環(huán)境要改為ibm jdk 5.0, 不然連接不上數(shù)據(jù)庫, 數(shù)據(jù)庫連接池的連接失敗,c3p0連接池的連接失敗,目前還是默認(rèn)的方式采用應(yīng)用服務(wù)器的連接池,像tomcat就采用tomcat配置的連接池

          eclipse 的開發(fā)時(shí)用的jre如果修改為ibm的以后,有可能會(huì)導(dǎo)致編譯不了,這要修改編輯器java類型的編碼為gb2312就可以了,genaral->content type –java file

          2. 程序中編寫sql時(shí)的用戶模式問題

          用戶模式要用公共常量,以便修改

          不同用戶模式之間的表的訪問通過授權(quán)來解決

          3. db2數(shù)據(jù)庫的函數(shù)問題

          程序中的添加和修改時(shí)間的地方的日期函數(shù)都要修改成

          Date(“2007-01-01”)就是字符串中間有帶中杠的

          日期轉(zhuǎn)字符串要把原先的to_char改成char(int(2007-01-01))

          Kpi的消息串在配置中在取權(quán)限priv_id的字符串要加上char(int(priv_id)),如果直接char(priv_id)會(huì)多出一個(gè)點(diǎn)號(hào)

          4. oracle樹形結(jié)構(gòu)的查詢移植到db2存在問題

          菜單查詢中,有存在層次level的沒實(shí)現(xiàn),目前我先通過自己寫的函數(shù)實(shí)現(xiàn),但存在問題跟沒有層次的實(shí)現(xiàn)方式一樣存在問題

          因?yàn)橥ㄟ^in的方式,in的存在字段是有限的到時(shí)候數(shù)據(jù)量變多了,sql就會(huì)執(zhí)行失敗,可以考慮臨時(shí)表來解決

          5. 序列表seq的長度問題

          所有的序列表的序列長度db2是有限制的,好像不能大于8位,這樣序列的字段都要做修改,而且不能重復(fù),要進(jìn)一步確認(rèn)修改

          7. 系統(tǒng)權(quán)限移植問題

          地區(qū)編碼的字段從數(shù)值型改為字符串類型,很辛苦,建議以后程序的bean的屬性都用字符串來定義,避免程序移植的類型修改的問題

          8. erwin數(shù)據(jù)模型問題

          數(shù)據(jù)模型中的部分表沒有及時(shí)更新,跟開發(fā)時(shí)用的表有出入,以后數(shù)據(jù)模型要及時(shí)更新

          9. 建表的sql語句問題

                 建表的sql

           number(12) 這樣的都要改成decimal(12,0)

           varchar2都要改成varchar

          posted @ 2007-10-27 23:27 JGAO編程隨筆 閱讀(393) | 評(píng)論 (0)編輯 收藏

          用ibm的東西

          用ibm的東西前先裝ibm的jdk

          posted @ 2007-10-20 15:33 JGAO編程隨筆 閱讀(175) | 評(píng)論 (0)編輯 收藏

          表單提交后獲取不到控件的值

          有時(shí)候我們?cè)诒韱翁峤缓髤s獲取不到控件的值
          可能原因:
          1. 控件少了name屬性
          2.控件被設(shè)置成disabled

          posted @ 2007-07-06 23:38 JGAO編程隨筆 閱讀(359) | 評(píng)論 (0)編輯 收藏

          OutputStream 轉(zhuǎn) InputStream

          使用場合: 操作excel或pdf等文件時(shí)需要先寫到輸出流, 然后又要用到ftp上傳該excel或pdf文件需要用到輸入流作為參數(shù),這時(shí)候我們就可以直接把該文件的輸出流轉(zhuǎn)為輸入流直接上傳到ftp服務(wù)器上

            1.
            ByteArrayOutputStream os 
          = new ByteArrayOutputStream();
            InputStream is 
          = new ByteArrayInputStream(os.toByteArray());

          posted @ 2007-06-18 22:41 JGAO編程隨筆 閱讀(4418) | 評(píng)論 (0)編輯 收藏

          設(shè)置file控件的按鈕樣式

          網(wǎng)上找的,分享一下
          <html>
          <script>
          function fclick(obj){
          with(obj){
          style.posTop
          =event.y-offsetHeight/2
          style.posLeft
          =event.x-offsetWidth/2
          }

          }

          </script>
          <style>
          input
          {border:1px solid #333333;color:#666666;background:#eeeeee;font:normal 12px Tahoma;height:18px}
          </style>
          <br>
          <br>
          <br>
          <table>
          <tr>
          <td>
          <form method="post" action="" enctype="multipart/form-data">
          <input id="f_file">&nbsp;<input type="button" onmouseover="fclick(t_file)" value="選擇上傳文件">
          <br>
          <input name="upload" type="file" style="position:absolute;filter:alpha(opacity=10);width:30px;" id="t_file" onchange="f_file.value=this.value" hidefocus>
          <br><input type="submit" value="提交">
          </form>
          </tr>
          </table>
          </html>

          posted @ 2007-06-14 23:03 JGAO編程隨筆 閱讀(2488) | 評(píng)論 (3)編輯 收藏

          進(jìn)度條思想

          后臺(tái)數(shù)據(jù)處理完成的時(shí)候設(shè)置一個(gè)處理完成的session標(biāo)志
          前臺(tái)通過發(fā)送ajax請(qǐng)求設(shè)置成功標(biāo)志的session的頁面,如果session的成功標(biāo)志為true則數(shù)據(jù)處理完成,關(guān)閉正在處理的進(jìn)度條圖片,否則繼續(xù)發(fā)送ajax請(qǐng)求,顯示正在處理的進(jìn)度條圖片,當(dāng)然也可以通過后臺(tái)返回?cái)?shù)據(jù)處理完成的百分比,來制作精確的進(jìn)度條

          posted @ 2007-06-14 23:00 JGAO編程隨筆 閱讀(215) | 評(píng)論 (0)編輯 收藏

          動(dòng)態(tài)設(shè)置checkbox的checked屬性

          當(dāng)我們?cè)谧鰟?dòng)態(tài)生成checkbox和動(dòng)態(tài)設(shè)置checkbox的checked屬性的時(shí)候要注意
          只有checkbox在頁面生成以后設(shè)置checkbox的checked屬性才有效,否則是無效的
          也就是說不要在create checkbox后就設(shè)置checked屬性,要等到該checkbox已經(jīng)append到頁面中了在來設(shè)置checked屬性這樣才可以

          posted @ 2007-05-22 23:44 JGAO編程隨筆 閱讀(1536) | 評(píng)論 (1)編輯 收藏

          response.sendredirect的問題

          1) 使用response.sendredirect重定向是沒辦法通過request.setAttribute來傳遞對(duì)象到另外一個(gè)頁面的
          但我們可以通過轉(zhuǎn)發(fā)的方式來實(shí)現(xiàn)request.getRequestDispatcher("test2.jsp").forward(request,response)
          這也是struts默認(rèn)的頁面跳轉(zhuǎn)方式,這就是為什么我們可以在action里面request.setAttribute然后在頁面里request.getAttribute

          2) 使用response.sendredirect重定向要記得在后面加上return不然后面的語句還是會(huì)繼續(xù)往下執(zhí)行的,還有就是response.sendredirect之前最好不要有任何的輸出語句包括html不然可能會(huì)重定向失敗
          最近我還遇到一個(gè)比較奇怪的問題就是response.sendredirect失敗,因?yàn)槲业亩丝谑峭ㄟ^交換機(jī)來轉(zhuǎn)換的所以可能就是在這里重定向不過去了,所以建議以后大家都使用request.getRequestDispatcher("test2.jsp").forward(request,response)這種方式就不會(huì)錯(cuò)了,當(dāng)然也可以用jsp標(biāo)簽的forward

          posted @ 2007-05-07 21:47 JGAO編程隨筆 閱讀(1079) | 評(píng)論 (0)編輯 收藏

          可定制生命周期的緩存

               摘要: 1) ICache.java 緩存接口 package com.jgao.cache;/** *//** * 緩存接口 * @author jgao * */public interface ICache {      ...  閱讀全文

          posted @ 2007-04-22 06:18 JGAO編程隨筆 閱讀(1010) | 評(píng)論 (0)編輯 收藏

          獲取第N級(jí)的所有節(jié)點(diǎn)實(shí)現(xiàn)代碼

          ??? 基本的思想和步驟都在了,主要就是遞歸

          ??? /**
          ???? * 傳入級(jí)數(shù)返回存放該級(jí)數(shù)下所有組織列表的列表
          ???? * @param lever int 組織級(jí)數(shù)
          ???? * @return List<List> 存放組織列表
          ???? */

          ??? public List<List> getTreeLeverNode(int lever) {
          ??????? String sqlstr = "select? ID from?table1 where PARENT_ID=0";
          ??????? Result ret = Dao.executeQuery(sqlstr);
          ??????? List<List> list = new Vector<List>();
          ??????? List rslist = new Vector();
          ??????? List<String> nodeList = new Vector<String>();
          ??????? for (int i = 0; i < ret.Length(); i++) {
          ??????????? rslist = getNextNode(Integer.parseInt(ret[i]
          ??????????????????????? .toString()), lever - 1, nodeList);
          ??????????????? list.add(rslist);
          ??????? }
          ??????? return list;
          ??? }

          ??? /**
          ???? * 返回存放該級(jí)數(shù)下所有組織的列表
          ???? * @param reqParentid 請(qǐng)求傳入的父節(jié)點(diǎn)ID
          ???? * @param lever 組織級(jí)數(shù)
          ???? * @param list 存放該級(jí)數(shù)下所有組織的列表
          ???? * @return List<String> 存放組織
          ???? */

          ??? public List<String> getNextNode(int reqParentid, int lever, List list) {
          ??????? String sqlstr = "select? ID from?table1 where PARENT_ID="
          ??????????????? + reqParentid;
          ??????? DBResult ret = super.executeQuery(sqlstr);
          ??????? List rslist = new Vector();
          ??????? lever = lever - 1;
          ??????? if (lever > 0) {
          ???????????for (int i = 0; i < ret.Length(); i++) {
          ?????????????????rslist = getNextNode(Integer.parseInt(ret[i]
          ??????????????????????? .toString()), lever , nodeList);
          ??????????????? list.add(rslist);
          ???????????}
          ??????? } else {
          ??????????? for (int i = 0; i < ret.Length(); ; i++) {
          ????????????????list.add(ret[i].toString());
          ??????????? }
          ??????? }
          ??????? return list;
          ??? }

          posted @ 2007-01-15 20:30 JGAO編程隨筆 閱讀(125) | 評(píng)論 (0)編輯 收藏

          erwin連接oracle9i數(shù)據(jù)庫

          剛使用erwin時(shí)在連接oracle9i數(shù)據(jù)庫時(shí)的那個(gè)連接串我一直用jdbc連接oracle的那個(gè)格式,所以一直連都連不上
          一直出現(xiàn)“內(nèi)部錯(cuò)誤,hostdef擴(kuò)展名不存在”,很是郁悶,不知大家有沒遇到
          后來查了一下,才知道本地的話要進(jìn)行本地的Net服務(wù)名配置
          配置工具在開始->oracle->Configuration and Migration Tools->NET CONFIGUATION ASSISTANT
          然后選擇本地的Net服務(wù)名配置,在配置到服務(wù)名的時(shí)候把你的數(shù)據(jù)庫名稱添進(jìn)去,然后往下到完成就行了

          也可以直接編輯tnsnames.ora,如下圖:

          接下來在erwin進(jìn)行正向或者反向工程的操作界面,提示連接數(shù)據(jù)庫的那個(gè)連接字符串里輸入你的那個(gè)服務(wù)名就行了,當(dāng)然用戶名密碼還是要跟之前的一樣,如下圖:

          posted @ 2007-01-14 17:23 JGAO編程隨筆 閱讀(3389) | 評(píng)論 (15)編輯 收藏

          獲取第N級(jí)的所有節(jié)點(diǎn)

          /**
          *臨時(shí)寫的偽代碼
          */

          //獲取第N級(jí)的所有節(jié)點(diǎn)

          public list getTreeLeverNode(int lever)
          ??rs0 = select id from menu where parentid is null;? //先從數(shù)據(jù)庫取出第一級(jí)的所有節(jié)點(diǎn)
          ??if(lever<=1)
          ? return rs0
          ? //循環(huán)第一級(jí)的節(jié)點(diǎn)遞歸取下面的節(jié)點(diǎn)
          ??for(int i=0; i<rs0.length; i++){
          ???rslist = getNextNode(rs0[i],lever-1);
          ???list.add(rslist);
          ??}
          ??return rs1;
          }

          public list getNextNode(int reqParentid,int lever){
          ??rs2 = select id from menu where parentid = reqParentid;
          ??lever = lever -1;
          ??if(lever>0){
          ???for(int i=0; i<rs2.length; i++){
          ????rs2 = getNextNode(rs2[i],lever);
          ????list.add(rs2);
          ???}
          ??}
          ??return rs2;
          }

          posted @ 2007-01-14 16:01 JGAO編程隨筆 閱讀(164) | 評(píng)論 (0)編輯 收藏

          數(shù)據(jù)操作控制

          ??????1.當(dāng)執(zhí)行一個(gè)功能的時(shí)候需要執(zhí)行多個(gè)更新操作,如:插入多個(gè)對(duì)象,刪除多個(gè)對(duì)象等,就可能存在執(zhí)行一個(gè)更新操作成功之后下一個(gè)更新操作失敗,那么這個(gè)功能的執(zhí)行就算是失敗的,可是卻向數(shù)據(jù)庫添加或刪除了不完全的相關(guān)數(shù)據(jù),所以就會(huì)出現(xiàn)臟數(shù)據(jù)
          ??????解決方法:
          ??????1) 通過事物控制讓多個(gè)執(zhí)行語句一起提交commit,commit失敗的話就回滾rollback,做到事物的原子性原則
          ??????2) 在數(shù)據(jù)庫設(shè)置一個(gè)操作成功或失敗的字段(或者本地臨時(shí)文件里存放相關(guān)的控制數(shù)據(jù)),通過該字段進(jìn)行控制,在執(zhí)行出錯(cuò)后刪除所有含有操作失敗字段的數(shù)據(jù)
          ???????
          ??????2.數(shù)據(jù)庫同步訪問控制:比如說一條記錄有兩個(gè)以上的用戶同時(shí)訪問,他們讀取出來的是相同的數(shù)據(jù),但寫入時(shí)有先后,如果不做控制就會(huì)出現(xiàn)后來寫入的數(shù)據(jù)把原來做了更新的數(shù)據(jù)覆蓋,使原來做的更新操作丟失就是無效,因?yàn)樗麄兌际窃谧钤甲x取出來的數(shù)據(jù)上做的修改,而不是在別人做了修改后的數(shù)據(jù)上做修改
          ??????解決方法:
          ??????1) 可以在數(shù)據(jù)庫多設(shè)置一個(gè)版本字段來控制該數(shù)據(jù)的歷史版本號(hào)(或者本地臨時(shí)文件里存放相關(guān)的控制數(shù)據(jù)),就是沒個(gè)人做了修改以后都要更新一下這個(gè)版本字段,同時(shí)更新之前也要做一下版本的比較,如果現(xiàn)在的版本和之前取出來的數(shù)據(jù)的版本不一樣,那么就要從新讀取數(shù)據(jù)再寫入,這樣就可以保證不會(huì)丟失修改
          ?????

          posted @ 2007-01-14 12:00 JGAO編程隨筆 閱讀(178) | 評(píng)論 (0)編輯 收藏

          tomcat下jsf移到weblogic8下出錯(cuò)

          錯(cuò)誤如下:Servlet: "Faces" failed to preload on startup in Web application
          我的方法是修改web.xml如下:
          <?xml version="1.0" encoding="gb2312"?>
          <web-app xmlns="
          http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?? http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
          ?<context-param>
          ??<param-name>javax.faces.CONFIG_FILES</param-name>
          ??<param-value>/WEB-INF/faces-config.xml</param-value>
          ?</context-param>
          ?
          ? //listener節(jié)點(diǎn)是新加的
          ?<listener>
          ??<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
          ?</listener>
          ?
          ?<servlet>
          ??<servlet-name>Faces Servlet</servlet-name>
          ??<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
          ??<load-on-startup>-1</load-on-startup>//本來是0先在改為-1
          ?</servlet>
          ?
          ?<servlet-mapping>
          ??<servlet-name>Faces Servlet</servlet-name>
          ??<url-pattern>*.faces</url-pattern>
          ?</servlet-mapping>
          </web-app>

          posted @ 2006-12-07 17:45 JGAO編程隨筆 閱讀(845) | 評(píng)論 (3)編輯 收藏

          tomcat 同時(shí)開多個(gè)端口

          tomcat要同時(shí)開多個(gè)端口只要配置conf文件夾下面的server.xml增加Service節(jié)點(diǎn)就可以了,如下我多開了個(gè)8083端口,同時(shí)我把Catalina文件夾多拷貝了一份另存為Catalina2
          <Server port="8005" shutdown="SHUTDOWN" debug="0">


          ? <!-- Comment out these entries to disable JMX MBeans support -->
          ? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
          ??????????? debug="0"/>
          ? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
          ??????????? debug="0"/>

          ? <!-- Global JNDI resources -->
          ? <GlobalNamingResources>

          ??? <!-- Test entry for demonstration purposes -->
          ??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

          ??? <!-- Editable user database that can also be used by
          ???????? UserDatabaseRealm to authenticate users -->
          ??? <Resource name="UserDatabase" auth="Container"
          ????????????? type="org.apache.catalina.UserDatabase"
          ?????? description="User database that can be updated and saved">
          ??? </Resource>
          ??? <ResourceParams name="UserDatabase">
          ????? <parameter>
          ??????? <name>factory</name>
          ??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          ????? </parameter>
          ????? <parameter>
          ??????? <name>pathname</name>
          ??????? <value>conf/tomcat-users.xml</value>
          ????? </parameter>
          ??? </ResourceParams>

          ? </GlobalNamingResources>

          ? <!-- Define the Tomcat Stand-Alone Service -->
          ? <Service name="Catalina">

          ??? <!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified
          ???????? during installation -->
          ??? <Connector
          port="8081"?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          ?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
          ?????????????? debug="0" connectionTimeout="20000"
          ?????????????? disableUploadTimeout="true" />

          ??? <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
          ??? <Connector port="8009"
          ?????????????? enableLookups="false" redirectPort="8443" debug="0"
          ?????????????? protocol="AJP/1.3" />
          ????????
          ??? <!-- Define the top level container in our container hierarchy -->
          ??? <Engine name="Catalina" defaultHost="localhost" debug="0">
          ????? <!--
          ????? <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
          ????? -->

          ????? <!-- Global logger unless overridden at lower levels -->
          ????? <Logger className="org.apache.catalina.logger.FileLogger"
          ????????????? prefix="catalina_log." suffix=".txt"
          ????????????? timestamp="true"/>


          ????? <!-- This Realm uses the UserDatabase configured in the global JNDI
          ?????????? resources under the key "UserDatabase".? Any edits
          ?????????? that are performed against this UserDatabase are immediately
          ?????????? available for use by the Realm.? -->
          ????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
          ???????????????? debug="0" resourceName="UserDatabase"/>

          ????? <!-- Define the default virtual host -->
          ????? <Host name="localhost" debug="0" appBase="webapps"
          ?????? unpackWARs="true" autoDeploy="true">


          ??????? <Logger className="org.apache.catalina.logger.FileLogger"
          ???????????????? directory="logs"? prefix="localhost_log." suffix=".txt"
          ??????????? timestamp="true"/>

          ??????? <!--
          ????????? <Context path="" docBase="ROOT" debug="0">
          ??????? -->
          ????? </Host>

          ??? </Engine>

          ? </Service>
          ?
          ??? <Service name="Catalina2">

          ??? <Connector
          port="8083"?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          ?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"
          ?????????????? debug="0" connectionTimeout="20000"
          ?????????????? disableUploadTimeout="true" />


          ??? <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
          ??? <Connector port="8010"
          ?????????????? enableLookups="false" redirectPort="8443" debug="0"
          ?????????????? protocol="AJP/1.3" />

          ????????
          ??? <!-- Define the top level container in our container hierarchy -->
          ??? <Engine name="Catalina2" defaultHost="localhost" debug="0">


          ????? <!-- Global logger unless overridden at lower levels -->
          ????? <Logger className="org.apache.catalina.logger.FileLogger"
          ????????????? prefix="catalina_log." suffix=".txt"
          ????????????? timestamp="true"/>

          ????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
          ???????????????? debug="0" resourceName="UserDatabase"/>


          ????? <Host name="localhost" debug="0" appBase="webapps"
          ?????? unpackWARs="true" autoDeploy="true">


          ??????? <Logger className="org.apache.catalina.logger.FileLogger"
          ???????????????? directory="logs"? prefix="localhost_log." suffix=".txt"
          ??????????? timestamp="true"/>

          ????? </Host>

          ??? </Engine>

          ? </Service>

          </Server>

          posted @ 2006-12-07 14:23 JGAO編程隨筆 閱讀(2559) | 評(píng)論 (0)編輯 收藏

          eclipse 配置weblogic服務(wù)器

          我剛配置時(shí)出現(xiàn)的錯(cuò)誤及解決方法:
          1.啟動(dòng)時(shí)出現(xiàn)如下錯(cuò)誤
          The WebLogic Server did not start up properly.
          java.io.InvalidClassException: javax.management.MBeanAttributeInfo; local class incompatible: stream classdesc serialVersionUID = 7043855487133450673, local class serialVersionUID = 8644704819898565848
          ?at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
          ?at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
          ?at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
          ?at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
          ?at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
          ?at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
          ?at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
          ?at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1628)
          ?at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)
          ?at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
          ?at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)<2006-12-6 下午05時(shí)39分36秒 CST> <Info> <Configuration Management> <BEA-150016> <This server is being started as the administration server.>
          <2006-12-6 下午05時(shí)39分36秒 CST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 8.1 SP2? Fri Dec 5 15:01:51 PST 2003 316284
          WebLogic XMLX Module 8.1 SP2? Fri Dec 5 15:01:51 PST 2003 316284 >

          原因是配置weblogic時(shí)用了jdk1.5改成weblogic自帶的jdk1.4就可以解決了

          2.啟動(dòng)時(shí)出現(xiàn)如下錯(cuò)誤
          ***************************************************************************
          The WebLogic Server did not start up properly.
          Exception raised: 'weblogic.management.configuration.ConfigurationException: Unable to locate server named myServer in the configuration file config.xml. Please ensure the argument -Dweblogic.Name=<serverName> matches a server name in that file, for example: <Server ... Name="someName"/>.A single server was found namedmyserver'
          Reason: weblogic.management.configuration.ConfigurationException: Unable to locate server named myServer in the configuration file config.xml. Please ensure the argument -Dweblogic.Name=<serverName> matches a server name in that file, for example: <Server ... Name="someName"/>.A single server was found namedmyserver
          ***************************************************************************
          原因是配置weblogic信息時(shí)的內(nèi)容跟你的F:\bea\user_projects\domains\mydomain\
          config.xml文件里的內(nèi)容不一致包括大小寫,改過來就行了
          主要是domain name和server name 如下是mydomain
          myserver
          <Domain ConfigurationVersion="8.1.2.0" Name="mydomain">
          ??? <Server ListenAddress="localhost" ListenPort="7001" Name="myserver"

          posted @ 2006-12-06 17:47 JGAO編程隨筆 閱讀(1262) | 評(píng)論 (0)編輯 收藏

          jdbc 連接sqlserver的問題

          很多人剛開始在用jdbc連接sqlserver時(shí)都出現(xiàn)問題,也就是連接不上
          大部分的什么配置工作啊,驅(qū)動(dòng)程序啊,程序的連接語句啊這些相信都沒錯(cuò),因?yàn)榫W(wǎng)上隨便都能找到,而且說得也很清楚了
          最主要的一個(gè)原因可能就是sp3補(bǔ)丁沒打,打完后或許就能連接上了

          posted @ 2006-11-08 21:43 JGAO編程隨筆 閱讀(195) | 評(píng)論 (0)編輯 收藏

          bgcolor 郁悶了我一整天

          ?var row=document.createElement('tr');
          ?row.setAttribute('bgcolor','#00CCFF');


          這樣設(shè)置了半天就是沒效果,找了半天就是找不出原因

          后來我直接在頁面上寫<tr bgcolor="#00CCFF"></tr>
          然后在程序里innerHTML
          發(fā)現(xiàn)兩個(gè)bgcolor打印出來是不一樣的

          我程序里的是原樣的bgcolor而靜態(tài)寫好的bgcolor卻變成bgColor看到?jīng)]c變成了大寫了,然后我也跟著改成?row.setAttribute('bgColor','#00CCFF');
          神了真的就可以了,哎無語啊!

          posted @ 2006-09-21 11:07 JGAO編程隨筆 閱讀(252) | 評(píng)論 (0)編輯 收藏

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 平乡县| 东乌珠穆沁旗| 溆浦县| 巩留县| 永仁县| 武川县| 定远县| 西昌市| 如东县| 名山县| 三原县| 农安县| 冷水江市| 高碑店市| 沂水县| 峡江县| 莱芜市| 龙井市| 原阳县| 诸暨市| 广饶县| 唐山市| 永昌县| 保康县| 新田县| 静海县| 项城市| 辉南县| 墨竹工卡县| 富阳市| 嵊州市| 隆回县| 绍兴市| 宁陵县| 安图县| 铜鼓县| 林州市| 广汉市| 英德市| 伊通| 丹东市|