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

          真正的快樂(lè)來(lái)源于創(chuàng)造

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

          #

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

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

          2012年5月9日增補(bǔ):
          父窗口未必需要傳數(shù)據(jù)給子窗口,而是子窗口需要操作父窗口的某些區(qū)域如div時(shí),可以在父窗口打開(kāi)子窗口的函數(shù)前將這個(gè)div的id找個(gè)地方(隱藏區(qū)域)存起來(lái),當(dāng)然這個(gè)地方不需要顯示,當(dāng)子窗口需要操作這個(gè)div時(shí),直接調(diào)用父窗口的js函數(shù)即可,這個(gè)函數(shù)可以先從隱藏區(qū)域中得到div的id,再根據(jù)這個(gè)id操作div。
          posted @ 2012-01-11 15:28 何楊 閱讀(1450) | 評(píng)論 (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();">全展開(kāi)</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ù)雜,如果對(duì)其稍加改造,可以做出更眩的東西來(lái)。
          posted @ 2012-01-04 19:44 何楊 閱讀(324) | 評(píng)論 (0)編輯 收藏

          說(shuō)明:以下代碼能原樣復(fù)制輸入XML的所有節(jié)點(diǎn)和屬性,雖說(shuō)使用ESQL和JavaCompute很容易完成此任務(wù)。但是將以下代碼稍作修改,就可以對(duì)輸入進(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 何楊 閱讀(613) | 評(píng)論 (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 何楊 閱讀(393) | 評(píng)論 (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>成績(jī)單</title>
                  
          </head>
                  
          <body>
                      
          <table border="1">
                          
          <caption>學(xué)生成績(jī)單</caption>
                          
          <tr>
                              
          <td>序號(hào)</td>
                              
          <td>ID</td>
                              
          <td>姓名</td>
                              
          <td>成績(jī)</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)計(jì)表格</caption>
                          
          <tr><td>總分</td><td><xsl:value-of select="sum(//score)"/></td></tr>
                          
          <tr><td>個(gè)數(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打開(kāi)數(shù)據(jù)源文件的效果:


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

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

          XMLTransformation節(jié)點(diǎn)在Transformation選擇項(xiàng)下,需要指定XSL文件的位置,可以通過(guò)其StylesheetName和StyleSheetDirectory來(lái)指定。以下是一個(gè)轉(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 何楊 閱讀(762) | 評(píng)論 (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>();// 用來(lái)存儲(chǔ)自定義的名稱(chēng)空間名
                      traverseAndRemoveNils(root,selfDefNSSet);// 遍歷節(jié)點(diǎn)刪除特定屬性
                      
                      
          if(selfDefNSSet.size()>0){
                          traverseAndRemoveSelfDefNSNode(root,selfDefNSSet);// 遍歷節(jié)點(diǎn)刪除自定義名稱(chēng)空間節(jié)點(diǎn)
                      }
                  }
                  
          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;
              }
              // 判斷是否自定義名稱(chēng)空間
              
          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é)點(diǎn)是否自定義名稱(chēng)空間的限定名
              
          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 何楊 閱讀(1583) | 評(píng)論 (0)編輯 收藏

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

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

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

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

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

          使用了子流程的主流程:


          定義的子流程:


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

          僅列出標(biāo)題
          共28頁(yè): First 上一頁(yè) 6 7 8 9 10 11 12 13 14 下一頁(yè) Last 
          主站蜘蛛池模板: 武宣县| 闵行区| 宜川县| 威信县| 肇东市| 星座| 修武县| 木里| 通化市| 舟曲县| 山阴县| 方山县| 乐平市| 调兵山市| 荃湾区| 泾阳县| 惠水县| 隆安县| 东台市| 墨竹工卡县| 克山县| 屯门区| 广丰县| 灵丘县| 永康市| 洛南县| 晋江市| 大邑县| 博客| 夏津县| 曲靖市| 哈密市| 宜黄县| 湘潭市| 皮山县| 城固县| 达州市| 北碚区| 通山县| 济源市| 安仁县|