ice world

          There is nothing too difficult if you put your heart into it.
          posts - 104, comments - 103, trackbacks - 0, articles - 0

          新項目需求,要在頁面中加載一個叫“大衛三角形”的圖形,還是GB(國標)中的東西,在網上搜索了一下“大衛三角形”,無果,也不知道什么東西,而且根據 什么畫出來的也不清楚。領導讓試試,看能不能畫出來。事前從未使用過開發語言畫圖,Windows的畫板倒是用過,連Photoshop都不會用,汗!而 且不是用手握著畫筆或者鼠標在屏幕上亂寫亂畫,是用程序語言將圖畫出。


          在網上搜尋關于使用JAVA畫圖的信息,知道了JAVA 2D,又下了幾個用Graphics2D畫圖的例子,看了看Java核心API。開始著手畫圖。不畫不知道,畫了才知道,開發Windows畫圖和其他畫 圖軟件的程序員都為我們做了多少貢獻,因為用程序畫圖簡直太麻煩了,一點一點的描,一線一線的連。像我畫這個圖還要經過很多次的計算,主要是計算坐 標,Graphics2D能畫的東西很多,但是要在User Space里給它指定坐標。

          經過不到兩天的努力,終于完成了這幅“大衛三角形”!雖然是硬畫出來的,并無什么計算公式而言(況且我也不會?。。€是有些激動,畢竟是第一次用程序畫圖么!


          發布到WEB,最終“大衛三角形”的摸樣:

          posted @ 2011-04-16 14:32 IceWee 閱讀(2476) | 評論 (2)編輯 收藏

          最近在寫一個tab標簽控件,用到了childNodes,節點可以用childNodes[0]來獲取其第一個節點,但是有些節點是有隱藏節點的,即便 你不寫,它也是存在的,我就遇到了這么個主兒,table,我曾兩次受到它的折磨,想要的東西得不到,想要的效果出不來,都拜它所賜!那是因為用 table.childNodes[0]得到的并不是你在HTML里寫的第一個<tr>節點,而是一個tbody的節點,即便你不寫,它也是 存在的,所以當你想得到第一個tr節點時你必須這樣寫:table.childNodes[0].childNodes[0]。就是如此!

          posted @ 2011-04-16 14:29 IceWee 閱讀(1223) | 評論 (0)編輯 收藏

          最近經常要調整系統中的一些頁面,雖然不是專業的美工,但也要略知一二才能應付得了。

          例一:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>table.html</title>
          <meta http-equiv="content-type" content="text/html; charset=GBK">
          <style type="text/css">
          <!--
          body
          {
          margin
          : 0px;
          }
          //
          -->
          </style>
          </head>
          <body>
          <table height="100%" width="100%" cellSpacing="0" cellPadding="0"
          border
          ="2" bordercolor="black">
          <tr>
          <td height="100%" width="200px" bgcolor="red">

          </td>
          <td height="100%" width="10px" bgcolor="green">

          </td>
          <td height="100%" width="100%" bgcolor="blue">

          </td>
          </tr>
          </table>
          </body>
          </html>

          上面的效果為整個頁面呈現藍色,看起來沒什么奇怪的,因為第三個td設置了寬度為100%,所以前兩個td的寬度自然被擠沒了。只要把紅色的100%去掉留空,或者干脆不寫寬度,那么正是想看到的結果,第三個td占用剩余的文檔寬度。

          例二:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>table.html</title>
          <meta http-equiv="content-type" content="text/html; charset=GBK">
          <style type="text/css">
          <!--
          body
          {
          margin
          : 0px;
          }
          //
          -->
          </style>
          </head>
          <body>
          <table height="100%" width="100%" cellSpacing="0" cellPadding="0"
          border
          ="2" bordercolor="black">
          <tr>
          <td height="200px" width="100%" bgcolor="red">

          </td>
          </tr>
          <tr>
          <td height="100px" width="100%" bgcolor="green">

          </td>
          </tr>
          <tr>
          <td height="100%" width="100%" bgcolor="blue">

          </td>
          </tr>
          </table>
          </body>
          </html>

          這次table改為三行,寬度都為100%,三個tr分整個文檔的高度,第三個td的高度100%,根據例一的經驗,第三個tr應該會占據其余兩個tr的 高度,也就是和例一一樣的效果,滿屏藍色。但是結果卻不是想象中的那樣。接著把100%換為空串或去掉高度的設置,效果都一樣。這不能用什么來解釋,只能 記住,這就是td設置高度和寬度的差別。

          posted @ 2011-04-16 14:28 IceWee 閱讀(448) | 評論 (0)編輯 收藏

          使用Ajax調用Action獲取XML字符串,其中包含中文,使用如下代碼輸出:
          ServletOutputStream out = response.getOutputStream();
          request.setAttribute("xmlTree", tree);
             out.print(tree);

          在JDK1.5平臺運行一切正常,在JDK1.6平臺運行拋出異常:

          嚴重: Servlet.service() for servlet action threw exception
          java.io.CharConversionException: Not an ISO 8859-1 character: 全
          at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
          at com.xjgc.rsm.web.action.ProblemtypeAction.createTypeTree(ProblemtypeAction.java:282)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
          at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
          at com.xjgc.rsm.web.action.ProblemtypeAction.execute(ProblemtypeAction.java:37)
          at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
          at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
          at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
          at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
          at java.lang.Thread.run(Thread.java:619)

          異常的大概意思是說非ISO-8859-1編碼,確實,我使用的GBK。而且第一行就是

          at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)

          問題可能出現在ServletOutputStream上,于是用PrintWriter替換了ServletOutputStream,運行正確,如:

          PrintWriter pw = response.getWriter();
          pw.print(tree);


          posted @ 2011-04-16 14:25 IceWee 閱讀(2246) | 評論 (0)編輯 收藏

          之前就出現過許多次這種情況,大概出現前都是項目的遷移,這必然導致環境的差異,如從公司的JDK1.5遷移到家里的JDK1.6,eclipse自帶有JDK的jar包,可以使用本地的也可以使用自帶的,于是作出如下操作:

          點擊eclipse上的服務器圖標,選擇Configure server - Servers - Tomcat - Tomcat x.x - JDK 選擇本機上安裝的JDK即可,Apply。啟動Tomcat,OK!

          posted @ 2011-04-16 14:22 IceWee 閱讀(1444) | 評論 (0)編輯 收藏

          項目中需要上傳一些較大的文件,都是一些壓縮備份文件,動不動就幾百M。系統框架SSH,必然用Struts。而Struts提供了 FormFile類來上傳文件。起初一切正常,上傳下載的都沒問題,但過了一段時間后客戶提出大于300M的文件上傳不上去。測試后發現果真如此,但是后臺并不報錯,直接返回下面的forward了。因為是初次使用,下面就是我一小天行走的過程。

          起初,我開始到處搜尋網上的上傳文件下載,很多人用的都是apache得commons-fileupload.jar這個組件,而且代碼都貼出了,我隨便下了一個小demo,屢試不爽,別說300,500M也能傳上去,而且也用了Struts,我開始犯暈。我試著將我的環境與demo得環境代碼盡量相似,至少主要代碼應該差不多。我將目前系統中的上傳附件代碼改成了demo中的:

          DiskFileUpload upload = new DiskFileUpload();
          List uploadList 
          = upload.parseRequest(request);


          但是每次使用uploadList.size();時獲取到得都是0,根本傳布了。我更暈了。。。

          我再次仔細的對比demo和系統,最后發現demo中沒有使用Struts的FormBean,會不會是這里的問題?于是我將demo中也增加了 FormBean類,標簽都用上了Struts的標簽,這次果然demo也失效了。。。終于被我發現,都是FormBean的問題,但現在我又不可能舍棄 FormBean,因為不僅僅是附件,還有別的很重要的一些屬性,代碼都寫好了,不可能大范圍修改,那咋辦?

          為什么fileupload可以傳那么大,而你struts卻傳不上大于300M的文件?再次搜索,終于發現原因,Struts在寫 FormFile類時借助的是fileupload中的API,設置的默認大小為250M,難怪傳不上去!如何設置更大一些或更小一些呢?這樣:

          在Struts配置文件的mapping標簽后加上

          <controller maxFileSize="1024M" />


          看到這個小標簽頁不用解釋什么了吧!我設置了1G,現在傳只要小于1G的附件都沒問題了!

          posted @ 2011-04-16 14:20 IceWee 閱讀(1481) | 評論 (0)編輯 收藏

          平常只用日期,很少精確到時間,今天偶爾用到了時間,發現小時比本機時間小了8個小時,操作系統是WIN7。時區設置也是+8北京。在網上搜索到可能是注冊表壞了,下了一個XP的注冊表導入后恢復正常了。

          原帖地址:http://huiy.javaeye.com/blog/200512

          問題描述:Window XP 系統自己能夠讀取正確的時間,但是用java獲取的時間始終與北京時間相差八個小時。
          原因分析:
          1.系統本身時區設置錯誤(可以排除,上面已經交代系統能夠獲取正確時間
          2.注冊表出現異常。
          注冊表對應項:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
          解決之道:
          1.備份Time Zones這一項
          2.從正常的并且是相同系統的機器中導出該項,然后倒入到自己機器中

          上招不行,還有一招!

          1.找到jdk 的安裝路徑 找到 如:
          a) C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc;
          b) C:\Program Files\Java\jdk1.5.0\jre\lib\zi;
          c) C:\Program Files\Java\jre1.5.0\lib\zi\Etc;
          d) C:\Program Files\Java\jre1.5.0\lib\zi;
          這四個文件路徑下找到 GMT 文件 進行刪除(注意:在刪除之前將其文件備份一下,以防萬一);在 C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc 下找到 GMT-8 文件復制一份 重命名為 CMT ,將其原來 的 GMT 文件覆蓋掉即可!

          posted @ 2011-04-16 14:17 IceWee 閱讀(1012) | 評論 (0)編輯 收藏

          前不久終于從XP升級到WIN7了,感覺真的很不錯,非常新鮮、漂亮,當然也有些小不快,比如說一些開發軟件不兼容,要下載VISTA版本的才可以正確運行。最近又遇到了一個小問題,就是軟件中文亂碼,上次出現亂碼的軟件竟然是 360衛士,但很快就解決了,大家都知道360的更新速度,幾天就更新一次,目前的版本一切正常。這個是軟件上的解決方案,等于自己什么也沒做,全靠奇虎了。我剛剛下載了一個叫QQCar的小軟件,啟動后竟然是亂碼,首先我的系統是英文版本的,安裝的漢化語言包,貌似沒有漢化好,因為啟動和關閉的時候都沒顯示“啟動 Windows”和“關閉”而是顯示“starting windows”和"log off""shut down"一類英文,但是筆記本上安裝的都一切正常。

          最后,切入正題,解決亂碼:

          設置區域和語言就不說了,想必都知道,就是因為這個已經設置好了還是亂碼才有此文章的。

          最后一招是通過修改注冊表來完成的。

          將[HKEY_CURRENT_USER-Control Panel-International-Locale]的鍵值修改為00000804,重啟電腦,再次運行亂碼的軟件,OK。

          PS:這個鍵值本來為00000409,我不知道代表何意,解決方法完全來源于網絡,但確實解決了亂碼問題。

          posted @ 2011-04-16 14:16 IceWee 閱讀(706) | 評論 (0)編輯 收藏

          最近和Office啊、PDF啊、Visio等打交道挺多,突然昨天突然發現.doc/.docx/.xls/.pdf/.vsd/.mpp/.ppt/.pptx/.xls/.xlsx等后綴的文件類型圖標都無法顯示了,顯示成未識別的圖標樣式,于是一頓神搜,很多說改注冊表,但我覺得麻煩,放棄了。最后解決方案是從同事那里拷過來那些需要的文件到自己的文件夾下。

          出現這種情況的原因是由于C:\Windows\Installer中的必要文件夾丟失,下面列出我丟失的文件夾列表:

          Office2007:{90120000-0011-0000-0000-0000000FF1CE}

          AdobeReader:{AC76BA86-7AD7-2052-7B44-A93000000001}

          Visio2007:{90120000-0051-0000-0000-0000000FF1CE}

          Project2007:{90120000-003B-0000-0000-0000000FF1CE}

          第一步,到同事的機器里找到以上的文件夾拷貝到自己的機器上

          第二步,如果文件類型圖標還沒恢復,手動設置一下打開方式,并且親自瀏覽應用程序的目錄。

          posted @ 2011-04-16 14:15 IceWee 閱讀(969) | 評論 (0)編輯 收藏

          網站上的文章用什么存儲?使用Oralce用CLOB存儲,Java操作CLOB的方法網上很多,可是發現讀取后顯示在網頁上和錄入時的格式完全不同,該有的段落已經不復存在,由于頁面中使用的是textarea標簽而不是強大的網頁文本編輯器,所以要自己處理格式的問題了,下面是我找到的一個專業函數,使用它將前臺傳過來的文章字符串轉義一下再存入數據庫,這次再讀取出來的文章就有段落的顯示了。
          /** 
           * 格式化文章信息,保持文章的格式(保存時用) 
           * 
          @param str 
           * 
          @return 
           
          */

          public String HTMLEncode(String str) {
              str 
          = str.replace(">""&gt;"); 
              str 
          = str.replace("<""&lt;");    
              
          char ch;    
              ch 
          = (char32// space    
              str = str.replace(String.valueOf(ch), "&nbsp;");    
              ch 
          = (char34// ''    
              str = str.replace(String.valueOf(ch), "&quot;");    
              ch 
          = (char39// '    
              str = str.replace(String.valueOf(ch), "&#39;");    
              ch 
          = (char13// carriage return    
              str = str.replace(String.valueOf(ch), "");    
              ch 
          = (char10// new line    
              str = str.replace(String.valueOf(ch), "<BR>");    
              
          return str;
          }

          posted @ 2011-04-16 14:13 IceWee 閱讀(1081) | 評論 (5)編輯 收藏

          僅列出標題
          共11頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
          主站蜘蛛池模板: 万全县| 全椒县| 霞浦县| 铅山县| 巴楚县| 丰都县| 宜兰县| 二手房| 贵溪市| 临清市| 永德县| 江口县| 驻马店市| 循化| 新建县| 浙江省| 集贤县| 焉耆| 封开县| 余庆县| 射阳县| 贵定县| 津市市| 哈巴河县| 九龙坡区| 新野县| 富源县| 金门县| 昌都县| 炉霍县| 舒兰市| 江安县| 保山市| 措勤县| 车致| 龙州县| 屏山县| 威信县| 黄梅县| 肃宁县| 中超|