<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    第一個Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    
    

    xsl 里增加

       function valueOf(context, elem) {
        return tools.valueOf(context, elem);
       }
    代碼里增加


     public String valueOf(XSLProcessorContext context, ElemExtensionCall elem) {
      String value = elem.getAttribute("select");
      String maxStr = elem.getAttribute("max");
      try {
       value = executeExpression(context, elem, value);
      } catch (TransformerException e) {
      }
      if (isNotBlank(maxStr)) {
       try {
        int max = Integer.parseInt(maxStr);
        value = shortStr(value, max);
       } finally {
       }
      }
      return value;
     }

     private String executeExpression(XSLProcessorContext context, ElemExtensionCall elem, String value)
       throws TransformerException {
      XPathContext xctxt = context.getTransformer().getXPathContext();
      XPath path = new XPath(value, elem, xctxt.getNamespaceContext(), XPath.SELECT);
      XObject data = path.execute(xctxt, context.getContextNode(), elem);
      if (data != null)
       value = data.xstr().toString();
      return value == null ? "" : value;
     }











    參考了下面的文檔






    [prev in list] [next in list] [prev in thread] [next in thread]
    List: xalan-j-users Subject: Re: Extension element with subelements From: John Gentilin <gentijo () eyecatching ! com> Date: 2007-09-07 21:48:37 Message-ID: 46E1C735.2080504 () eyecatching ! com [Download message RAW] Oops... this might be what you are after instead... executeChildTemplatesToXML or ToString or ToXMLString may be what you are after.. /** * A repository for common functions that can be used but the extension * functions and extension elements. * * * Title: Base Functions * Copyright: Copyright (c) 2005 * Company: Eye Catching Solutions Inc. * @version 1.0 * @author John Gentilin */ public class BaseFunctions { private static Category m_Log = Category.getInstance("RapidXSL.Interface"); private static DocumentBuilderFactory m_dfactory = null; private static DocumentBuilder m_docBuilder = null; /** * @param context * @param elem * @throws TransformerException */ protected void executeChildTemplates( XSLProcessorContext context, ElemExtensionCall elem ) throws TransformerException { TransformerImpl transf = context.getTransformer(); transf.executeChildTemplates(elem, context.getContextNode(), context.getMode(), transf.getResultTreeHandler()); } /** * @param context * @param elem * @throws TransformerException */ protected Document executeChildTemplatesToXML(Document doc, XSLProcessorContext context, ElemExtensionCall elem ) throws XMLServerException { DOMBuilder builder = null; TransformerImpl transformer = context.getTransformer(); try { builder = new DOMBuilder(doc); transformer.executeChildTemplates(elem, context.getContextNode(), context.getMode(), builder); } catch (Exception e) { throw new XMLServerException("RXSL_IFACE", "XSL Interface Error - " + e.getLocalizedMessage()); } return doc; } /** * @param context * @param elem * @throws TransformerException */ protected String executeChildTemplatesToString(XSLProcessorContext context, ElemExtensionCall elem ) throws XMLServerException { TransformerImpl transformer = context.getTransformer(); try { TextSerializationHandler handler = new TextSerializationHandler(); transformer.executeChildTemplates(elem, context.getContextNode(), context.getMode(), handler); return handler.toString(); } catch (Exception e) { throw new XMLServerException("RXSL_IFACE", "XSL Interface Error - " + e.getLocalizedMessage()); } } protected String executeChildTemplatestoXMLString(XSLProcessorContext context, ElemExtensionCall elem) throws TransformerException, SAXException { try { TransformerImpl transformer = context.getTransformer(); // This should be worked on so that the output format can be // defined by a first child of the redirect element. OutputProperties format = transformer.getOutputFormat(); Properties prop = format.getProperties(); format.setProperty("indent","no"); format.setProperty("{[prev in list] [next in list] [prev in thread] [next in thread]
    
    
    Configure | About | News | Donate | Add a list | Sponsors: 10EastKoreLogicTerra-InternationalChakpak.com
    posted @ 2009-10-21 17:19 哈哈的日子 閱讀(356) | 評論 (0)編輯 收藏

     要過生日了,看看老婆的準備。


    早飯:
    長壽面+荷包蛋 用小青菜做湯
     
     
     
     
     
    中飯:
    菜:
    1可樂雞
    2魚
    3鍋包肉
    4黃瓜炒肉
    5皮蛋
    6花生
     
    湯:蛋花湯
     
    水果:榴蓮 哈密瓜
     
    飲料:可樂 啤酒
     
    主食:餃子
     
    主要地:生日蛋糕


    重要的是生日禮物:
                    蘋果筆記本電腦還有一個藍牙的無線蘋果鼠標,無比的喜歡!!!
    posted @ 2009-09-14 21:17 哈哈的日子 閱讀(426) | 評論 (3)編輯 收藏
    1. 先到 google code 上下載了 api 的 lib,當然是 java client,還有好多,比如 .net , php 什么的,沒看。
    2. 去看 google data api 的 getting start,但是,那個 ant 命令執行完,會出一些 captcha 的錯誤,沒細看,估計是需要驗證碼了,api 沒跟上。
    3. 直接到 calendar 里面,把 CalendarFeedDemo執行了一下,注意,需要輸入用戶名和密碼,用戶名是 aaa@gmail.com 這樣的,但發現這個不是我要的,我要的只是增加個 event 而已。
    4. 執行 EventFeedDemo,jump這個才是我要的,簡化了一下,只要能增加一個定時的 event,并有提醒,就夠了。

    代碼在下面,連包名都沒改:
     1 
     2 package sample.calendar;
     3 
     4 import java.io.IOException;
     5 import java.net.URL;
     6 import java.util.Calendar;
     7 import java.util.GregorianCalendar;
     8 import java.util.TimeZone;
     9 
    10 import com.google.gdata.client.calendar.CalendarService;
    11 import com.google.gdata.data.DateTime;
    12 import com.google.gdata.data.PlainTextConstruct;
    13 import com.google.gdata.data.calendar.CalendarEventEntry;
    14 import com.google.gdata.data.extensions.Reminder;
    15 import com.google.gdata.data.extensions.When;
    16 import com.google.gdata.data.extensions.Reminder.Method;
    17 import com.google.gdata.util.ServiceException;
    18 
    19 public class HahaCalendar {
    20     private static URL eventFeedUrl;
    21     private static final String METAFEED_URL_BASE = "http://www.google.com/calendar/feeds/";
    22     private static final String EVENT_FEED_URL_SUFFIX = "/private/full";
    23 
    24     public static void main(String[] args) throws ServiceException, IOException {
    25         String username = "username@gmail.com";
    26         eventFeedUrl = new URL(METAFEED_URL_BASE + username + EVENT_FEED_URL_SUFFIX);
    27         CalendarService myService = new CalendarService("haha calendar");
    28         myService.setUserCredentials(username, "password");
    29         CalendarEventEntry singleEvent = createSingleEvent(myService, "每天背單詞""單詞1,單詞2");
    30         System.out.println("Successfully created event " + singleEvent.getTitle().getPlainText());
    31     }
    32 
    33     private static CalendarEventEntry createSingleEvent(CalendarService service, String eventTitle, String eventContent)
    34             throws ServiceException, IOException {
    35         CalendarEventEntry entry = new CalendarEventEntry();
    36         entry.setTitle(new PlainTextConstruct(eventTitle));
    37         entry.setContent(new PlainTextConstruct(eventContent));
    38         Calendar calendar = new GregorianCalendar();
    39         calendar.add(Calendar.MINUTE, 10);
    40         DateTime startTime = new DateTime(calendar.getTime(), TimeZone.getDefault());
    41         calendar.add(Calendar.MINUTE, 60);
    42         DateTime endTime = new DateTime(calendar.getTime(), TimeZone.getDefault());
    43         When eventTimes = new When();
    44         eventTimes.setStartTime(startTime);
    45         eventTimes.setEndTime(endTime);
    46         entry.addTime(eventTimes);
    47         addReminder(entry);
    48         return service.insert(eventFeedUrl, entry);
    49     }
    50 
    51     private static void addReminder(CalendarEventEntry myEntry) {
    52         Reminder reminder = new Reminder();
    53         reminder.setMinutes(5);
    54         reminder.setMethod(Method.SMS);
    55         myEntry.getReminder().add(reminder);
    56     }
    57 }
    58 

    想用的注意,把上面的用戶名和密碼改成自己的。


    posted @ 2009-07-19 13:04 哈哈的日子 閱讀(2301) | 評論 (4)編輯 收藏
    1. 先到 oracle 網站上下載了 oracle 11g for linux 的 zip 包,并解壓
    2. 在用戶下執行 ./runInstaller -jreLoc /usr/lib/jvm/java-6-sun/jre/(我指定了使用我安裝的jdk,否則會中文亂碼)
    待續……
    3. 一路下一步就可以了,但其中有一些依賴的東西需要先安裝好,有
      a) libaio1
      b) rpm
      c) ksh
    4. 要把一些命令 link 到 /usr/bin 目錄下,其中 有
      a) awk -> /etc/alternatives/awk
      b) ksh -> /etc/alternatives/usr.bin.ksh
    5. 還要把一個必須的目錄建出來,就是 /opt,其實這個目錄有可能已經存在了的。
    6. 然后就一切 ok 了,但要啟動 oracle 還需要增加一些環境變量,我一般就把這些放在 .bashrc 里了。
      a) export ORACLE_HOME=/home/haha/app/haha/product/11.1.0/db_1
      b) export ORACLE_SID=haha
      c) export NLS_LANG=american_america.utf8(這個是為了顯示中文內容的時候不會亂碼)
      d) export PATH=$PATH:/home/haha/app/haha/product/11.1.0/db_1/bin(這個就是為了方便,不設也行)
    7. 測試安裝是否成功,可以從下面的幾個方面看
      a) 訪問 https://domain:1158/em,看看能登錄不。
      b) netstat -anop | grep 1521,看看 listener 啟動沒有


    下次再啟動 oracle 需要使用下面的命令
      a) 啟動數據庫實例: sqlplus "/as sysdba",然后 startup
      b) 啟動 listener:lsnrctl start
      c) 啟動 em:emctl start dbconsole(可選)


    linux oracle 客戶端可以使用 sql developer,在 oracle 網站上就能下載,其實這是無奈之舉,畢竟 plsqldev 無法在 linux 下使用。

    posted @ 2009-07-12 18:23 哈哈的日子 閱讀(3316) | 評論 (5)編輯 收藏
    找到一篇非常不錯的文章,晚上回來操作一下。
    http://zeroliu.blogdriver.com/zeroliu/1208212.html

    應用場景:
    玩個游戲文字mud,客戶端使用mushclient,支持使用 lua 腳本來寫 robot,以便自動練功。
    但由于多個 id 之間 share 數據比較困難,導致地圖數據在每個 id 都要加載一次,數量大了之后,內存用很多,而且還會出現莫明其妙的內存泄漏問題。所以想改用 java 實現(因為我不會用 c 實現)

    最終選擇了使用 lua 調用 c,然后調用 java
    posted @ 2008-10-19 09:49 哈哈的日子 閱讀(221) | 評論 (0)編輯 收藏
    安裝了cdt 5.0,以前可以build的project死都不能build。
    錯誤是
    **** Internal Builder is used for build               ****
    g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\Test.o ..\src\Test.cpp
    Internal Builder: Cannot run program "g++": ??Õ?»µ½?¶¨µ
    Build error occurred, build is stopped
    Time consumed: 0  ms. 


    把 MinGW 的運行目錄加到classpath里,把mingw32-make.exe復制一個,改名為make.exe。
    在命令行下,一切都沒有問題,就是在 eclipse里面不能用,郁悶了幾天了。

    google 了一下,參考了
    http://www.eclipseworld.org/bbs/read-cec-tid-18540-page-e.html
    這個帖子中參考了
    http://74.53.91.20/bbs/read-cec-tid-17557-fpage-2.html

    最終的方法是將
    org.eclipse.cdt.core.win32_5.0.0.200809120802.jar
    解壓成目錄org.eclipse.cdt.core.win32_5.0.0.200809120802,注意把原來的jar刪除。

    要人命了,這也能行,不看 code 估計這輩子都解決不了這個問題了。
    posted @ 2008-10-18 20:36 哈哈的日子 閱讀(1733) | 評論 (4)編輯 收藏
    今天安裝了 svn 服務端。
    為什么寫呢?因為和以前安裝的不一樣。
    有什么不一樣呢?
    1、方便了很多
    2、安裝了 viewvc

    為什么要安裝 viewvc,而不是fisheye呢?
    不是因為viewvc比fisheye好,就是因為剛才的第一點,方便。

    以前安裝 svn 都是直接下載一個 svn windows 版的壓縮包,解壓,bin目錄加到path里,使用 sc 命令用 svnserve 建個服務,啟動,完成。
    其實這個步驟還是很簡單的,就是在使用 sc 建 service 的時候,命令行有些復雜而已。
    但這樣只能使用 svn://xxx/xxx 來使用,而且不能在 web 上看到版本庫,那么,就想了點兒辦法,安裝一個 apache 吧,然后根據文檔,一頓猛配,相當的麻煩。好處就是,可以使用 http://xxx/xxx 來使用,而且可以在 web 上瀏覽到最新的版本內容,雖然 web 功能土了點兒,但至少可以使用了。有的時候,深得這樣不爽,就再加個 fisheye,我個人相當喜歡 fisheye 這個軟件,以至于花了點兒時間破解了一下,需要的可以在 blog 上找一下,不是暴力的那種,是半注冊的,可以跟著升級的那種。

    但是,唯一,也是最大的問題,就是麻煩,安裝這一套東西,那是相當的麻煩啊。

    今天發現了一個方便的辦法。

    下載三個東西:
    1、CollabNet Subversion Server
    2、python
    3、python win32api

    安裝過程和下載不太一樣。
    1、python
    2、CollabNet Subversion Server
    3、python win32api

    2、3順序無所謂的。

    然后,就擁有了一個 svn + apache + viewvc 的環境了,相當的方便。
    我喜歡。

    呵呵…… ^_^
    posted @ 2008-08-05 21:28 哈哈的日子 閱讀(599) | 評論 (0)編輯 收藏
    1、我想做什么
    2、我該做什么
    3、我要做多久
    posted @ 2008-06-12 22:31 哈哈的日子 閱讀(237) | 評論 (0)編輯 收藏
    可以直接將 plugin 放到 dropins 目錄下,即可自動完成安裝。

    dropins 目錄支持下列形式的結構。

    1、
     eclipse/
    dropins/
    org.eclipse.core.tools_1.4.0.200710121455.jar
    org.eclipse.releng.tools_3.3.0.v20070412/
    plugin.xml
    tools.jar
    ... etc ...
    ...
    


    2、

     eclipse/
    dropins/
    eclipse/
    features/
    plugins/
    


    3、

     eclipse/
    dropins/
    emf/
    eclipse/
    features/
    plugins/
    gef/
    eclipse/
    features/
    plugins/
    ... etc ...
    

    4、 

     eclipse/
    dropins/
    emf.link
    

    最后一種就相當原來的 links 目錄,只要寫
    path = ...
    就可以了。
    posted @ 2008-04-13 13:02 哈哈的日子 閱讀(4798) | 評論 (0)編輯 收藏
    batch_size 即同時提交數據的數量,原本與事務并沒有什么關系,但如果涉及到同一張表數據的同一種操作,可能就會發生微妙的關系了。

    場景如下:
    場景一:使用 spring 控制事務,將方法事務配置為 not_supported,向同一張表中插入兩條數據,保證第一條數據正常插入,而第二條數據受約束(如唯一約束)插入失敗。

    預測結果:第一條數據成功,第二條失敗。
    實際結果:兩條數據均失敗。
    原因:hibernate 將兩條插入放到了同一個 batch 中,提交同時失敗了。

    場景二:同樣使用 spring 控制事務,將方法事務配置為 not_supported,向第一張表中插入一條合法數據,成功,向第二張表插入數據,受約束(如唯一約束)插入失敗。

    預測結果:第一條數據成功,第二條失敗。
    實際結果:第一條數據成功,第二條失敗。
    原因:hibernate 分別插入數據并提交,在無事務的情況下,第一條成功,第二條失敗。

    那么如何讓場景一得到預測結果呢,一個簡單的解決方法,將 hibernate.jdbc.batch_size 設置為 1,即可。

    所以,即使控制了事務,也未必能夠得到期望的結果,還需要考慮某些特殊的場景帶來的影響。
    posted @ 2008-03-06 14:18 哈哈的日子 閱讀(1830) | 評論 (2)編輯 收藏
    僅列出標題
    共17頁: First 上一頁 7 8 9 10 11 12 13 14 15 下一頁 Last 
    主站蜘蛛池模板: 亚洲精品无码av天堂| 国产免费av片在线播放| 国产AV无码专区亚洲AV男同| 特级无码毛片免费视频| 免费无码又爽又刺激高潮的视频| 香蕉大伊亚洲人在线观看| 妻子5免费完整高清电视| 亚洲精品天天影视综合网| 91成人免费福利网站在线| 亚洲午夜久久久久久噜噜噜| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 一二三四视频在线观看中文版免费 | 亚洲AV无码专区在线观看成人 | 午夜老司机免费视频| 在线亚洲高清揄拍自拍一品区| 99久久国产热无码精品免费| 亚洲欧洲另类春色校园小说| 色播精品免费小视频| 国产精品亚洲专区在线观看| 国内精品免费视频自在线| 国产亚洲综合视频| 亚洲国产一区二区三区| 国产一级在线免费观看| 久久亚洲AV成人无码电影| 韩国免费一级成人毛片| 亚洲AV日韩AV一区二区三曲| 亚洲福利中文字幕在线网址| 美女网站在线观看视频免费的| 亚洲Av无码专区国产乱码DVD| 最近新韩国日本免费观看 | 久久久无码精品亚洲日韩蜜臀浪潮| 91福利视频免费观看| 亚洲日本VA午夜在线电影| 四虎永久免费影院| 国产成人AV免费观看| 亚洲一区二区三区深夜天堂| 国产免费观看黄AV片| 97无码人妻福利免费公开在线视频| 亚洲一区二区三区在线观看蜜桃| 国产hs免费高清在线观看| 免费人成毛片动漫在线播放|