PIXNET Logo登入

Jemmy Walker

跳到主文

部落格全站分類:

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 1月 06 週四 201117:16
  • JDOM解析XML字串(非檔案)

痞客邦的第二篇,還不太熟怎麼用。
進行POC過程發現如果XML不是檔案,而是字串,JDOM如何去parse? 這以前晃兄有教過一次。
StringReader sr = new StringReader(xmlString);
Document doc = builder.build(sr);
(繼續閱讀...)
文章標籤

Jemmy 發表在 痞客邦 留言(0) 人氣(433)

  • 個人分類:Java
▲top
  • 1月 05 週三 201121:44
  • Android SDK不能用於JDK 64bit


這是我遷移到痞客邦後第一篇Blog,沒想到對岸朋友還是無法分享。
在新的PC試玩Android,結果明明有裝JDK,Path和JAVA_HOME都有設置,結果安裝Android SDK Tool的installer執行檔回應:JDK not found。
經Google大師裁示,目前Android SDK只支援32 bit,而我是安裝64bit,所以得安裝32 bit的JDK
(繼續閱讀...)
文章標籤

Jemmy 發表在 痞客邦 留言(0) 人氣(226)

  • 個人分類:Google
▲top
  • 12月 17 週五 201015:30
  • 非我族類的DataTables.js:分頁和排序無作用原因

  Java Script的世界一向隨便,非我族類的一套library反而是種嚴謹,而對習慣隨便寫Java Script的我,花了半天才找到解法。問題如下: HTML內文

<div class="demo_jui">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="table_grid">
    <thead>
        <tr>
            <th width="20%">編號</th>
            <th width="80%">群組</th>
        </tr>
    </thead>
    <tbody id="tableBody">
    </tbody>
</table>
</div>

使用jQuery的DataTables.js去修飾table_grid

$(document).ready(function() {      
    oTable = $('#table_grid').dataTable({     
        "bJQueryUI": true,                    
        "sPaginationType": "full_numbers",    
        "bProcessing": true,
        "iDisplayLength": 5
} );

動態生成reocrd

function buildTable(tableData) {
    var tableBody = $("#tableBody");
    tableBody.html("");
    //add the table rows
    $.each(tableData, function(i){
    tableBody.append('<tr></tr>');
    var tr = $('tr:last', tableBody);
        tr.append('<td>' + tableData[i].id + '</td>');
        tr.append('<td>' + tableData[i].group + '</td>');
    });
};

  結果呢?資料正常顯示,但分頁、排序的功能完全無效,後來才知道,既然使用了DataTables.js,就要用它的function去動態生成,雖同屬jQuery,不能用純jQuery語法生成。改法如下:

var oTable;        // 宣告為global變數
function buildTable(tableData) {
    oTable.fnClearTable(0);    // 等同html("")
    $.each(tableData, function(i){
        oTable.fnAddData([     // 動態新增record
            tableData[i].id,
            tableData[i].group
        ]);
    });
    oTable.fnDraw();           // 重新繪製
};

  那麼誰去call buildTable呢?是Ajax:

function querySubmit() {
    dataString = $("#myForm").serialize();
    $.ajax({
        url: '<c:out value="${ctx}"/>/query.do',
        type: 'POST',
        data: dataString,
        dataType: 'json',
        success: function(data, status){
            buildTable(data);
        },
        error: function(xhrInstance, status, xhrException) {
            alert("failure:" + status);
        }
    });
    return true;
}

(繼續閱讀...)
文章標籤

Jemmy 發表在 痞客邦 留言(0) 人氣(1,414)

  • 個人分類:jQuery
▲top
  • 12月 16 週四 201017:08
  • java.lang.IllegalStateException: Committed之解

  java.lang.IllegalStateException: Committed。大多出現在sendRedirect或forward時發生,通常解法是: request.setAttribute("result", finaldata); request.getRequestDispatcher("calculation.jsp").forward(request, response); // 因為request的attribute屬性要隨著forward跳轉。   而我在Struts 1開發時也有這個問題,當我google到上述解法時,才恍然原來我是用Ajax去call Struts的Action並以JSON回傳,也就是我在Action的內容如下:

JSONArray json = JSONArray.fromObject(list);
logger.debug(json.toString());
PrintWriter out=response.getWriter();
out.println(json);
out.flush();
return null; // error: return mapping.findForward("success");

  因為使用response的getWriter來print和Struts1的findForward等於做了重複的output,out.print可以正常顯示結果後執行findForward就出現上述異常了。
(繼續閱讀...)
文章標籤

Jemmy 發表在 痞客邦 留言(0) 人氣(483)

  • 個人分類:Struts
▲top
  • 12月 16 週四 201015:50
  • PostgreSQL二三事


  寫Web一直以來是我的罩門,但同事會信的沒多少,認為這對我應該不難,其實下意識覺得我是救世"僕"。想拿回借出去的書參考,結果它們全被擺在家裡睡覺。
  Web搞不定,就記錄我在PostgreSQL的新發現:

  • JDBC承接serial型態都會出錯,用Long接說不能Cast成Integer、用Integer接說不能Cast成BigDecimal、用BigDecimal接卻又說不能Cast成Integer、用String接也說不能Cast成Integer。那怎麼辦咧?在SQL語法強轉型:select cast(serial_id as int) from table。cast不但可以將serial轉成int,也能將character varying轉成int。

  • PostgreSQL似乎沒有判斷NULL的function,NULLIF(var1, var2)是指當var1 = var2回傳Null,所以只好這麼改:select case when serial_id is null then –1 else serial_id end from table。典型的MSSQL語法。

  • 有個欄位放系統時間長整數,卻是字串格式,所以要format成顯示格式如下:select to_char(to_timestamp(to_number(origtime, '99999999999')), 'YYYY-MM-DD') from table。先to_number再to_timestamp後to_char,夠落落長吧!


  •   沒有餘額再開新的分類,就放在Oracle了。
    (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(722)

    • 個人分類:PostgreSQL
    ▲top
    • 12月 13 週一 201019:08
    • Form/Field V.S. Document/Item

      Lotus Notes其實也是有Schema的。取得方式如下:

    Form form = db.getForm("fmFoo");
    Vector<String> vec = form.getFields();
    System.out.println(vec.toString());

      之前討論過Form只是Document裡一個Item名,而getForm顯然是Notes Database物件特別針對Form屬性進行搜尋。其getFields是列出隸屬於該Form的Field。一度以為Item等同於Field,但顯然Form / Field與Document / Item之間還是有差異:
  • Form / Field:其實就等同Table的Schema,類似於Java Class地位。
  • Document / Item:類似於Java Instance地位。第一位document可能多出一些item,是第二份document所沒有,但item name只要不等於field name,基本上就只是屬該instance所有。
  •   結論是:
  • Form is an Item、Fields所列出的名字都是Item Name。但Item Name不一定就是Field Name,除非該Item Name同時為getFields裡的一個名字。
  • 業務邏輯上,Form代表一種Document的類型,而非實體。
  • (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(63)

    • 個人分類:LotusNotes
    ▲top
    • 12月 02 週四 201022:12
    • Spring Mail

      利用在客戶端測試的空檔,測試Spring出品的Java Mail。

    import javax.mail.internet.MimeMessage;

    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.mail.javamail.MimeMessageHelper;

    public class SpringMailer {

        public static void main(String[] args) throws Exception {
            JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
            javaMailSender.setHost("127.0.0.1");
            MimeMessage msg = javaMailSender.createMimeMessage();
            MimeMessageHelper msgHelper = new MimeMessageHelper(msg);
            msgHelper.setFrom("jemmy@from");
            msgHelper.setTo("spring@to");
            msgHelper.setSubject("Test Spring Mail!");
            msgHelper.setText("Spring");
            javaMailSender.send(msg);
        }
    }

    JavaMailSender是一個Interface,可以被Spring配置。這裡直接引用JavaMailSenderImpl,可以設置SMTP Host甚至它的login id/pwd。而setText還第二個參數,若為true則為html格式。
    (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(198)

    • 個人分類:Spring
    ▲top
    • 12月 01 週三 201015:35
    • Ant generate manifest.mf的class-path清單

      在想移blog後,是不是要依抽象類別來分,如Maven、Ant甚至Git放到CM,Regex也包括Shell Script。臨時支援他人寫的程式,跳過Ant直接接觸Maven的我,注記一下Ant在manifest.mf生成dependency jar list的方法。 原來的Ant Script摘錄如下:

    <target name="build" depends="compile" description="Compile and generate jar">
        <jar destfile="${dist.dir}/compare.jar" compress="true" basedir="${temp.dir}">
        <manifest>
            <attribute name="Main-Class" value="${mainclass}"/>
            <attribute name="Class-Path" value="lib\commons-collections.jar lib\commons-pool.jar lib\commons-dbcp.jar lib\ojdbc14.jar lib\nls_charset12.jar lib\jdom.jar lib\log4j-1.2.12.jar"/>
        </manifest>
        </jar>
        <copy todir="${dist.dir}" preservelastmodified="true">
            <fileset dir="${source.dir}" includes="config.xml,run.bat" />
        </copy>
        <copy todir="${dist.dir}/lib" preservelastmodified="true">
            <fileset dir="${lib.dir}" includes="*.jar" />
        </copy>
    </target>

      如上述片段紅字,設定manifest.mf時,Class-Path後跟著是hard code。再擴充的話,就什麼都要加。若要改成自動讀lib目錄裡所有jar,如下: <attribute name="Class-Path" value="${libs.project}" />   那libs.project的property該如何設置,得在build.xml裡增加以下內容:

    <pathconvert property="libs.project" pathsep=" ">
        <mapper>
            <chainedmapper>
                <!-- remove absolute path –>
                <flattenmapper />
                <!-- add lib/ prefix –>
                <globmapper from="*" to="lib/*" />
            </chainedmapper>
        </mapper>
        <path>
            <!-- lib.dir contains all jar files, in several subdirectories –>
            <fileset dir="${lib.dir}">
                <include name="**/*.jar" />
            </fileset>
        </path>
    </pathconvert>

      看來設定似乎更累贅,但從英文注釋可以推敲是做什麼目的,設定一次就不擔心hard code拖累。Maven在export jar的manifest.mf也是如出一轍的複雜。
    (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(511)

    • 個人分類:Maven
    ▲top
    • 11月 30 週二 201015:26
    • dhcp.bat

    netsh interface ip set address name="區域連線" source=dhcp
    netsh interface ip set dns "區域連線" source=dhcp
    (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(40)

    • 個人分類:電腦和網際網路
    ▲top
    • 11月 30 週二 201010:11
    • Java update Notes的DateTime欄位

  • DateTime dateTime = session.createDateTime("2010-11-27:10:00:09");  // from java.sql.Date
  • DateTime dateTime = session.createDateTime("2010-11-27:10:00:09.000000000"); // from java.sql.TimeStamp
  • DateTime dateTime = session.createDateTime(new java.util.Date());
  •   在取得lotus.domino.DateTime物件後,就可以replaceItemValue("DateField", dateTime);。如此在NotesClient才會顯示Date/Time而非Text型態。   要search的話得借助Function了,如下: db.search("Form=\"fmFoo\" & @TextToTime(\"2010-11-27:10:00:09.000000000\")=DateField");   基本上若參數只到日期,精準度會比對到日期,若列出時分秒,精準度則比對到時分秒。
    (繼續閱讀...)
    文章標籤

    Jemmy 發表在 痞客邦 留言(0) 人氣(88)

    • 個人分類:LotusNotes
    ▲top
    12...57»

    自訂側欄

    自訂側欄

    個人資訊

    Jemmy
    暱稱:
    Jemmy
    分類:
    好友:
    累積中
    地區:

    熱門文章

    • (1,414)非我族類的DataTables.js:分頁和排序無作用原因
    • (541)Perl的跨行比對
    • (2,911)Java在換行字元的issue
    • (72)Notes的Agent二三事
    • (520)JavaMail初體驗
    • (31)六句聯
    • (1,418)UltraEdit轉大小寫
    • (576)Struts-Menu初體驗
    • (18,352)Windows route初體驗
    • (223)Log4J依不同class產出不同log file之二,加Daily Rolling

    文章分類

    • PostgreSQL (1)
    • Ruby (6)
    • 圖書 (18)
    • 旅行 (8)
    • OSGi (13)
    • 健康 (9)
    • Google (6)
    • 歷史 (5)
    • Spring-Security (5)
    • Java Script (11)
    • Log (8)
    • 娛樂 (25)
    • IT趨勢 (12)
    • 心情 (92)
    • 組織 (41)
    • Java基本功 (18)
    • Regex (19)
    • 新聞與政治 (46)
    • 電腦和網際網路 (47)
    • Maven (28)
    • Spring (31)
    • LotusNotes (12)
    • Java (60)
    • Oracle (17)
    • Struts (21)
    • jQuery (10)
    • 未分類文章 (1)

    最新文章

    • JDOM解析XML字串(非檔案)
    • Android SDK不能用於JDK 64bit
    • 非我族類的DataTables.js:分頁和排序無作用原因
    • java.lang.IllegalStateException: Committed之解
    • PostgreSQL二三事
    • Form/Field V.S. Document/Item
    • Spring Mail
    • Ant generate manifest.mf的class-path清單
    • dhcp.bat
    • Java update Notes的DateTime欄位

    動態訂閱

    文章精選

    文章搜尋

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣: