2011年9月13日 星期二

JAXB from xsd generate java class



要從XSD產生出對應的java class, 以便在專案中使用JAXB來 parse及build xml檔。

1.取得XSD
2.執行xjc 產生java class
指令是
xjc -p org.iii.test.jaxb.whitesuger xmlSchema\WhiteSuger\WhiteSuger.xsd 但是因為以前的系統xsd是有中文的,也就是產生的xml 中tag是中文的...有點腦殘...
所以generate出來的java class編碼會亂掉,如果一個一個處理會弄到天荒地老。
好險網路的大德找到方式。
將指令改為如下:

java -Dfile.encoding=UTF-8 -cp "C:\Program Files\Java\jdk1.6.0_25\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p gov.fdc.tac.jaxb.context.basic 基本標籤.xsd


這樣執行就可以轉出utf8的code

2011年8月8日 星期一

ireport stretch

說明幾個ireport參數:
Stretch with overflow: 可以設定該欄位高度依據其內容而延展。
也就是說在ireport中雖然繪製該欄位為一行的高度,但是其內容文字有多行時,
會自動依據內容文字延展。

2011年8月4日 星期四

JQuery之軛

今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。

看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。

2011年8月1日 星期一

Object

在JAVA的 open Source世界中,常會看到許多名詞 VO,DAO...等XXO之類的東東。
這邊做一個備忘的整理:

2011年6月23日 星期四

javascript 檢查輸入是否為英數字

在撰寫web系統有時需要限制欄位只能key 英文 或 數字,
而不給key中文,符號的可怕需求...
這邊提供從大學同學阿勇多年經驗的code...XD




========jsp中的input 欄位 兩個事件都要有============

<input onkeydown="divChian();" onkeypress="LimitInput('Num',false);" type="”text”" />
//divChian() 擋中文
//LimitInput('Num',false) 選擇只能輸入數字, 且不轉換成大寫(若為英文)


===============javascript==============

//擋中文
function divChian(){
    var LOBJ_Lable = window.event;
        if(LOBJ_Lable.keyCode == 229) //中文都會有299這個code
              event.returnValue=false;
}

//LimitInput[參數,控制的物件,是否要轉大寫(true:要轉;false:不要轉)]
function LimitInput(LSTR_Type,LBOL_Chagecode){
  var LOBJ_Lable = window.event;
  //轉大寫;
  if (LBOL_Chagecode==true){
    if (LOBJ_Lable.keyCode >= 97  && LOBJ_Lable.keyCode<= 124){
             LOBJ_Lable.keyCode-=32;
           }
        }
  switch (LSTR_Type){
    //只能輸入英數
    case "NumEng":
      if ( (LOBJ_Lable.keyCode >= 48  && LOBJ_Lable.keyCode<= 57)||
               (LOBJ_Lable.keyCode >= 65  && LOBJ_Lable.keyCode<= 90)||
               (LOBJ_Lable.keyCode >= 97  && LOBJ_Lable.keyCode<= 122)){
              return LOBJ_Lable.keyCode;
      }else{
              return LOBJ_Lable.keyCode =0;
            }
          break;
        case "Num":
           if(LOBJ_Lable.keyCode < 48 || LOBJ_Lable.keyCode > 57){
               LOBJ_Lable.keyCode = 0;
           }
           break;
        case "NumDotMinus":
      if ((LOBJ_Lable.keyCode >= 48  && LOBJ_Lable.keyCode<= 57)||
            (LOBJ_Lable.keyCode == 45 || LOBJ_Lable.keyCode == 46)){
        return LOBJ_Lable.keyCode;
      }else{
        return LOBJ_Lable.keyCode =0;
      }
     break;
  }
}

ireport page band

ireport中有幾個band要注意一下:
1.page header
每頁都會印出
2.page footer
每頁都會印出, 但是報表若有 lastPage footer band,則最後一頁不會顯示
3.last page footer
只印出在最後一頁

2011年6月15日 星期三

jasperreport+ireport

在TAC系統中, 實作jasperreport報表說明:(參考TAC程式Tac113Controller, Tac113ReportTest, Tac113ManagerImpl)
前提: 完成fdc report設定.
步驟:
  1. 拉報表樣板 jrxml, 編譯jrxml成 japser檔
  2. 測試報表 撰寫 TACxxxReportTest 測試類別
  3. controller 中 注入 TACReportUtil
  4. 透過manager取得報表表頭, 明細資料.參數
  5. 使用TACReportUtil 利用資料參數產生報表

2011年5月10日 星期二

針對 List 排序

開發中偶爾需要針對List進行排序。
這邊紀錄粗糙的作法...有時間再改得方便一些。

2011年4月23日 星期六

WAS 指令

最近在用WAS,當搭配RSA使用時,簡直就是吃記憶體怪獸,
加上RSA作部署時,有時候會發生某些設定檔會找不到的狀況,原因不明。
解決辦法如下:

2011年4月20日 星期三

java doc


Javadoc 是當初 Sun 在發表 Java 時,連帶發表的文件產生工具,只要依照其特定的格式在開發程式碼的同時撰寫註解 (documentation comment),就能為我們直接由原始碼產生有用的 API 說明文件。

2011年4月19日 星期二

package的注意事項

一直認為自己寫java已經很熟了...沒想到還是發生了...很白痴的新手問題

ESAPI

ESAPI
官網的介紹是
ESAPI (The OWASP Enterprise Security API) 是一個free、open source的web application security control library。
可以讓開發者較簡單的做出高安全性的application.
ESAPI設計上是可以較容易的加強現有系統的安全性並且作為系統的基礎設計。
提供方便的實作讓開發者可以輕易的使用,不用限定在特定的架構中。
支援 java、javascript、object C、.NET、PHP...等等許多語言。