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

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

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

    當(dāng)柳上原的風(fēng)吹向天際的時候...

    真正的快樂來源于創(chuàng)造

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

    #

    父窗口調(diào)用子窗口函數(shù)實現(xiàn)是挺簡單的,如下:
    var wnd = window.open("XXX.html");
    wnd.showDatas(datas);
    以上代碼中,showDatas是定義在子窗口的函數(shù),datas是父窗口要給子窗口的數(shù)據(jù)。
    需要注意的事,使用open語句打開窗口后,窗口未必能把所有代碼全部載入,因此showDatas函數(shù)未必調(diào)用有效。
    如果要有效,可以先把數(shù)據(jù)傳遞給子窗口,再在子窗口中延時調(diào)用showDatas函數(shù)。
    如此,父窗口中的代碼如下:
    var wnd = window.open("XXX.html");
    wnd.datas=datas;// 傳遞數(shù)據(jù)給子窗口
    子窗口中的代碼如下:
    setTimeout(showDatas(window.datas),1000);// 延時時間可進(jìn)行調(diào)整。
    如上,父窗口調(diào)用子窗口函數(shù)才算完美。

    反過來,子窗口要調(diào)用父窗口的函數(shù)要用opener對象,如:
    opener.showMessages(msgs);
    以上代碼中,showMessages是定義在父窗口的函數(shù),msgs是子窗口要給父窗口的數(shù)據(jù)。

    2012年5月9日增補:
    父窗口未必需要傳數(shù)據(jù)給子窗口,而是子窗口需要操作父窗口的某些區(qū)域如div時,可以在父窗口打開子窗口的函數(shù)前將這個div的id找個地方(隱藏區(qū)域)存起來,當(dāng)然這個地方不需要顯示,當(dāng)子窗口需要操作這個div時,直接調(diào)用父窗口的js函數(shù)即可,這個函數(shù)可以先從隱藏區(qū)域中得到div的id,再根據(jù)這個id操作div。
    posted @ 2012-01-11 15:28 何楊 閱讀(1445) | 評論 (0)編輯 收藏

    下載地址:

    效果:

    核心代碼:
    <%@ page contentType="text/html; charset=UTF-8"%>

    <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
    <html>
    <head>

    <title>Dtree Sample</title>
    <link rel="stylesheet" rev="stylesheet" href="web/css/style.css" type="text/css" />
    <link rel="stylesheet" rev="stylesheet" href="web/css/dtree.css" type="text/css" />
    <script src="web/js/dtree.js" type="text/javascript"></script>
    </head>

    <body>

    <div id="treeDiv">
        
    <div class="dtree">
            
    <p><href="javascript: d.openAll();">全展開</a> | <href="javascript: d.closeAll();">全收起</a></p>
            
    <script type="text/javascript">
                
    <!--
        
                d 
    = new dTree('d');
        
                d.add(
    0,-1,'Root');
                d.add(
    1,0,'1','web/jsp/1.jsp','顯示1.jsp','rightFrame','','',false);
                d.add(
    2,0,'2','web/jsp/2.jsp','顯示2.jsp','rightFrame','','',false);
                d.add(
    3,0,'3','web/jsp/3.jsp','顯示3.jsp','rightFrame','','',false);
                d.add(
    4,0,'4','web/jsp/4.jsp','顯示4.jsp','rightFrame','','',false);
                d.add(
    5,1,'李逵','test?page=likui','顯示李逵','rightFrame','','',false);
                d.add(
    6,1,'宋江','test?page=sj','顯示宋江','rightFrame','','',false);
                d.add(
    7,1,'魯智深','test?page=lzs','顯示魯智深','rightFrame','','',false);           
        
                document.write(d);
        
                
    //-->
            </script>
        
    </div>
    </div>
    <div id="contentDiv">
        
    <iframe id="index_mainframe" name="rightFrame" class="index_mainframe" src="web/jsp/blank.jsp" frameborder="0" scrolling="no" ></iframe>
    </div>

    </body>
    </html>

    dtree的css,js代碼都不復(fù)雜,如果對其稍加改造,可以做出更眩的東西來。
    posted @ 2012-01-04 19:44 何楊 閱讀(319) | 評論 (0)編輯 收藏

    說明:以下代碼能原樣復(fù)制輸入XML的所有節(jié)點和屬性,雖說使用ESQL和JavaCompute很容易完成此任務(wù)。但是將以下代碼稍作修改,就可以對輸入進(jìn)行篩選,剪裁和重構(gòu)的工作。

    輸入:
    <id="1"><id="2">3</b></a>

    代碼:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        
    <xsl:template match="node()">
            
    <xsl:copy>
                
    <xsl:apply-templates select="@*|node()"/>
            
    </xsl:copy>
        
    </xsl:template>
     
        
    <xsl:template match="@*">
            
    <xsl:attribute namespace="{namespace-uri()}" name="{name()}">
                
    <xsl:value-of select="."/>
            
    </xsl:attribute>
        
    </xsl:template>
     
        
    <xsl:template match="text()">
            
    <xsl:value-of select="."/>
        
    </xsl:template>
    </xsl:stylesheet>

    輸出:
    <?xml version="1.0" encoding="UTF-8"?><id="1"><id="2">3</b></a>
    posted @ 2011-12-21 20:14 何楊 閱讀(605) | 評論 (1)編輯 收藏

         摘要: 1.使用Substring進(jìn)行字符串截取輸入:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><date>122811</date>輸出:Code highlighting produced by Actipro CodeHig...  閱讀全文
    posted @ 2011-12-14 09:49 何楊 閱讀(388) | 評論 (0)編輯 收藏

    數(shù)據(jù)源(students.xml):
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="xsheet.xsl"?>
    <students>
        
    <student id="123">
            
    <name>Andy</name>
            
    <score>69</score>
        
    </student>
        
    <student id="345">
            
    <name>bill</name>
            
    <score>88</score>
        
    </student>
        
    <student id="678">
            
    <name>Felix</name>
            
    <score>96</score>
        
    </student>
        
    <student id="987">
            
    <name>Zerg</name>
            
    <score>72</score>
        
    </student>
        
    <student id="236">
            
    <name>Grrr</name>
            
    <score>59</score>
        
    </student>
    </students>

    XSL文件(xsheet.xsl):
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        
        
    <xsl:template match="/">
            
    <html>
            
    <head>
                
    <title>成績單</title>
            
    </head>
            
    <body>
                
    <table border="1">
                    
    <caption>學(xué)生成績單</caption>
                    
    <tr>
                        
    <td>序號</td>
                        
    <td>ID</td>
                        
    <td>姓名</td>
                        
    <td>成績</td>
                    
    </tr>
                    
    <xsl:for-each select="students/student">
                    
    <xsl:sort order="descending"  select="score"/>
                        
    <tr>
                            
    <xsl:choose>
                                
    <xsl:when test="position() mod 2 = 1">
                                    
    <xsl:attribute name="style">background:#336699;</xsl:attribute>
                                
    </xsl:when>                            
                                
    <xsl:otherwise>
                                    
    <xsl:attribute name="style">background:#00ffcc;</xsl:attribute>
                                
    </xsl:otherwise>
                            
    </xsl:choose>
                        
                            
    <td><xsl:value-of select="position()"/></td>
                            
    <td><xsl:value-of select="@id"/></td>
                            
    <td><xsl:value-of select="name"/></td>
                            
    <xsl:choose>
                                
    <xsl:when test="score &gt; 60">
                                    
    <td><xsl:value-of select="score"/></td>
                                
    </xsl:when>                            
                                
    <xsl:otherwise>
                                    
    <td><font color="red"><xsl:value-of select="score"/></font></td>
                                
    </xsl:otherwise>
                            
    </xsl:choose>
                        
    </tr>
                    
    </xsl:for-each>
                
    </table>
                
    <br/>
                
    <table border="1">
                    
    <caption>統(tǒng)計表格</caption>
                    
    <tr><td>總分</td><td><xsl:value-of select="sum(//score)"/></td></tr>
                    
    <tr><td>個數(shù)</td><td><xsl:value-of select="count(/students/student)"/></td></tr>
                    
    <tr><td>及格人數(shù)</td><td><xsl:value-of select="count(/students/student[score > 60])"/></td></tr>    
                    
    <tr><td>平均分</td><td><xsl:value-of select="sum(//score) div count(/students/student)"/></td></tr>                            
                
    </table>
            
    </body>
            
    </html>
        
    </xsl:template>
        
    </xsl:stylesheet>

    用IE打開數(shù)據(jù)源文件的效果:


    XSLT相關(guān)知識請參考:
    http://soft-app.iteye.com/blog/916652
    posted @ 2011-12-12 21:26 何楊 閱讀(417) | 評論 (0)編輯 收藏

    需要一個Mapping節(jié)點時,XMLTansformation節(jié)點通常是一個不錯的選擇,它可以使用XSLT將輸入的XML轉(zhuǎn)變成另一種形式的 XML,其開發(fā)速度高于在Compute節(jié)點中書寫ESQL和在JavaCompute節(jié)點中書寫Java代碼,其缺陷在于缺乏訪問外部數(shù)據(jù)的手段,有時 還需要上述兩種節(jié)點的幫助。

    XMLTransformation節(jié)點在Transformation選擇項下,需要指定XSL文件的位置,可以通過其StylesheetName和StyleSheetDirectory來指定。以下是一個轉(zhuǎn)換的例子:

    輸入:
    <employees><employee id="001">Andy</employee><employee id="002">Bill</employee><employee id="034">Cindy</employee></employees>

    轉(zhuǎn)換XSL:
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        
        
    <xsl:template match="/">
            
    <users>
            
    <xsl:for-each select="employees/employee">
                
    <user>
                    
    <sn><xsl:value-of select="position()"/></sn>
                    
    <id><xsl:value-of select="@id"/></id>
                    
    <name><xsl:value-of select="text()"/></name>
                    
    <pswd><xsl:value-of select="concat(@id,'_',text())"/></pswd>
                
    </user>
            
    </xsl:for-each>
            
    </users>
        
    </xsl:template>
        
    </xsl:stylesheet>

    輸出:
    <?xml version="1.0" encoding="UTF-8"?><users><user><sn>1</sn><id>001</id><name>Andy</name><pswd>001_Andy</pswd></user><user><sn>2</sn><id>002</id><name>Bill</name><pswd>002_Bill</pswd></user><user><sn>3</sn><id>034</id><name>Cindy</name><pswd>034_Cindy</pswd></user></users>
    posted @ 2011-12-12 19:44 何楊 閱讀(759) | 評論 (0)編輯 收藏

    代碼:
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import java.util.regex.Pattern;

    import com.ibm.broker.javacompute.MbJavaComputeNode;
    import com.ibm.broker.plugin.MbElement;
    import com.ibm.broker.plugin.MbException;
    import com.ibm.broker.plugin.MbMessage;
    import com.ibm.broker.plugin.MbMessageAssembly;
    import com.ibm.broker.plugin.MbOutputTerminal;


    public class subflow_JavaCompute extends MbJavaComputeNode {

        
    public void evaluate(MbMessageAssembly inAssembly) throws MbException {
            MbOutputTerminal out 
    = getOutputTerminal("out");
            MbOutputTerminal alt 
    = getOutputTerminal("alternate");

            MbMessage inMessage 
    = inAssembly.getMessage();
            MbMessage outMessage 
    = new MbMessage(inMessage);
            MbMessageAssembly outAssembly
    =new MbMessageAssembly(inAssembly,outMessage);
            
            MbElement document
    =outMessage.getRootElement();
            MbElement root
    =document.getLastChild().getFirstChild();

            
    try{
                Set
    <String> selfDefNSSet=new HashSet<String>();// 用來存儲自定義的名稱空間名
                traverseAndRemoveNils(root,selfDefNSSet);// 遍歷節(jié)點刪除特定屬性
                
                
    if(selfDefNSSet.size()>0){
                    traverseAndRemoveSelfDefNSNode(root,selfDefNSSet);// 遍歷節(jié)點刪除自定義名稱空間節(jié)點
                }
            }
            
    catch(Exception ex){
                ex.printStackTrace();
            }
            
            out.propagate(outAssembly);
        }

        
        
    private void traverseAndRemoveNils(MbElement elm,Set<String> selfDefNSSet) throws Exception{
            
    // get all the attributes of current element
            List <MbElement> attrSet = (List <MbElement>)elm.evaluateXPath("@*"); 
            
    for(MbElement attr:attrSet){
                String name
    =attr.getName().toString();
                String value
    =attr.getValue().toString();
                
                
    if(isNillAttr(name,value)){
                    attr.detach();
                }
                
                
    if(isSelfDefNS(name,value)){
                    String[] arr
    =name.split(":");
                    selfDefNSSet.add(arr[
    1]);
                    attr.detach();
                }
            }
            
            
    // get all sub elements of current element
            List <MbElement> nodeset = (List <MbElement>)elm.evaluateXPath("*"); 
            
    for(MbElement childElm:nodeset){
                
    // recursion
                traverseAndRemoveNils(childElm,selfDefNSSet);
            }
        }
        
        // 判斷是否特定屬性,a:nil,b:nil都算
        
    private boolean isNillAttr(String name,String value){
            String patternStr
    ="(\\w+)(:nil)";
              
            
    boolean result1 = Pattern.matches(patternStr, name);
            
    boolean result2="true".equals(value);
            
            
    return result1&&result2;
        }
        // 判斷是否自定義名稱空間
        
    private boolean isSelfDefNS(String name,String value){
            String patternStr
    ="(xmlns:)(\\w+)";
              
            
    boolean result = Pattern.matches(patternStr, name);
            
            
    return result;
        }
       
        
    private void traverseAndRemoveSelfDefNSNode(MbElement elm,Set<String> selfDefNSSet) throws Exception{
            String name
    =elm.getName().toString();
            
            
    if(isSelfDefNSNode(name,selfDefNSSet)){
                elm.detach();
            }
            
            
    // get all sub elements of current element
            List <MbElement> nodeset = (List <MbElement>)elm.evaluateXPath("*"); 
            
    for(MbElement childElm:nodeset){
                
    // recursion
                traverseAndRemoveSelfDefNSNode(childElm,selfDefNSSet);
            }
        }
        // 判讀節(jié)點是否自定義名稱空間的限定名
        
    private boolean isSelfDefNSNode(String name,Set<String> selfDefNSSet){
            String[] arr
    =name.split(":");
            
            
    if(arr.length==2){
                String ns
    =arr[0];
                
                
    return selfDefNSSet.contains(ns);
            }
    else{
                
    return false;
            }
        }
    }

    輸入:
    <contactInfo xmlns:ns1="http://tbccorp.com/Services/CustomerMgt/v1/"><homePhoneNumber as:b="c"><key xsi:nil="true"/><value></value></homePhoneNumber><workPhoneNumber><ns1:a>1644</ns1:a><key xsi:nil="true"/><value ns1:nil="true">5</value></workPhoneNumber><ns1:b>1949</ns1:b><mobilePhoneNumber xmlns:ns1="http://tbccorp.com/Services/CustomerMgt/v1/"><key xsi:nil="true"/><value>3159867097</value></mobilePhoneNumber></contactInfo>

    輸出:
    <contactInfo><homePhoneNumber as:b="c"><key/><value/></homePhoneNumber><workPhoneNumber><key/><value>5</value></workPhoneNumber><mobilePhoneNumber><key/><value>3159867097</value></mobilePhoneNumber></contactInfo>
    posted @ 2011-12-09 23:40 何楊 閱讀(1578) | 評論 (0)編輯 收藏

         摘要: Cache的作用:在并發(fā)環(huán)境中減少重復(fù)性的對后臺的調(diào)用,從而提高運行效率。Cache必須要做到的:1.保證Cache中的數(shù)據(jù)與后臺系統(tǒng)數(shù)據(jù)的一致性。2.Cache必須要減少訪問后臺的操作以提高效率。如果不能同時做到以上兩點,則Cache失去了意義。Cache的基本操作:Read(Get):按鍵值從Cache中取得想要的數(shù)據(jù);Write(Put):將鍵值對放到Cache中;Reset(RemoveA...  閱讀全文
    posted @ 2011-09-27 15:32 何楊 閱讀(537) | 評論 (0)編輯 收藏

         摘要: 注:以下Cache未加時效處理,是比較簡陋的Cache方案。AbstractCacheMap基類,用來定義和限制子類的操作:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package cachemap.base;/** *&nb...  閱讀全文
    posted @ 2011-09-27 10:00 何楊 閱讀(987) | 評論 (0)編輯 收藏

    任務(wù):熟悉Subflow的使用

    Subflow即子流程,當(dāng)主流程的某個分支較有獨立性且復(fù)雜是可以采用子流程的形式。
    子流程必須具備一個Input和Output節(jié)點作為輸入和輸出,而主流程可以通過“Add Subflow”的方式將定義好的子流程加入進(jìn)來,當(dāng)作一個普通節(jié)點來使用。

    Input和Output節(jié)點在Contruction中,以下是使用子流程的一個例子。

    使用了子流程的主流程:


    定義的子流程:


    例程:
    posted @ 2011-09-23 09:40 何楊 閱讀(709) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共28頁: First 上一頁 6 7 8 9 10 11 12 13 14 下一頁 Last 
    主站蜘蛛池模板: 亚洲AV综合色区无码二区偷拍| 97人妻精品全国免费视频 | 亚洲一区免费视频| 亚洲精品你懂的在线观看| 在线视频免费国产成人| 青青草a免费线观a| 免费无码VA一区二区三区| a级毛片免费高清视频| 亚洲AV成人无码网站| 亚洲AV无码精品蜜桃| 亚洲在成人网在线看| 亚洲第一精品在线视频| 亚洲人成人77777网站| 国产综合亚洲专区在线| 亚洲电影日韩精品| 国产成人无码a区在线观看视频免费| 青娱乐免费在线视频| 亚洲视频免费一区| 91久久精品国产免费一区| 国产精成人品日日拍夜夜免费| 国产一级婬片A视频免费观看| 成人a毛片视频免费看| 深夜特黄a级毛片免费播放| 亚洲AV色无码乱码在线观看| 在线综合亚洲中文精品| 亚洲av无码电影网| 亚洲av一本岛在线播放| 亚洲一区二区三区高清不卡| 中文字幕在线观看亚洲视频| 亚洲AV无码乱码麻豆精品国产| 亚洲人成毛片线播放| 亚洲一卡2卡4卡5卡6卡在线99| 亚洲三级中文字幕| 亚洲深深色噜噜狠狠网站| 日韩亚洲国产综合高清| 亚洲自偷自偷在线成人网站传媒| 亚洲最大的成人网| 黄色毛片免费在线观看| rh男男车车的车车免费网站| 精品免费视在线观看| 99久久国产免费-99久久国产免费|