風雨無阻

          項目中用到的JS代碼

          function addDev()
          {
           var sFeatures="dialogWidth:700px;dialogHeight:500px;scroll:no;";
           var customerId = document.all['cusId'].value;
           var result= window.showModalDialog('<%=appURL %>/businesspermit/DeviceSelectAction.do?formAction=toAddPage&customerId='+customerId,"",sFeatures);
           if(result!=null )
           {
            <logic:present name="edit" scope="request">
               document.CustomerSetForm.action="<%=appURL %>/businesspermit/CustomerSetAction.do?formAction=toEditBusi&showType=1";
            </logic:present>
             <logic:notPresent name="edit" scope="request">
             document.CustomerSetForm.action="<%=appURL %>/businesspermit/CustomerSetAction.do?formAction=getBusinessSet";
             </logic:notPresent>
            
            // window.location.reload();
            
            CustomerSetForm.submit();
           }
          }

          這個函數表示:添加新的設備JS函數,window.showModalDialog()會返回一個值result,如果result!=null,則刷新這個頁面。
          原來是用window.location.reload();刷新頁面的,但是這樣就不能保留之前頁面上輸入的數據,為了保留原來輸入的數據,換成了
          document.CustomerSetForm.action=“”;
          CustomerSetForm.submit();
          上面的語句表示:讓這個頁面重新指向另一個action地址,然后提交。這樣,用了Struts標簽后,以前四輸入的數據仍然會保留到返回后的頁面了。

          注意:在js代碼中,可能使用譬如說<logic:present>等標簽。

          posted @ 2008-03-13 09:37 秋楓故事 閱讀(294) | 評論 (0)編輯 收藏

          Comparator接口實例

          // 新建鏈表并加入元素
                  List<Member> members=new ArrayList<Member>();  
                  members.add(new Member("Andy",20));  
                  members.add(new Member("Dell",23));
                  members.add(new Member("Felex",24));
                  members.add(new Member("Bill",21));
                  members.add(new Member("Cindy",22));
                  
                  // 創建一個比較器匿名類
                  Comparator comparator=new Comparator(){
                    public int compare(Object op1,Object op2){
                      Member memberOp1=(Member)op1;
                      Member memberOp2=(Member)op2;
                      
                      // 按姓名排序
                      return memberOp1.getName().compareTo(memberOp2.getName());
                    }
                  };
                  
                  // 排序
                  Collections.sort(members,comparator);
                  
                  // 輸出排序后的鏈表
                  for(Member member:members){
                    System.out.println(member.getName() + ":" + member.getAge());
                  }
                   
                }

          輸出結果:
          Andy:20
          Bill:21
          Cindy:22
          Dell:23
          Felex:24

          posted @ 2008-03-12 17:25 秋楓故事 閱讀(325) | 評論 (0)編輯 收藏

          IE瀏覽器自動刷新

          當你做網頁時,是不是有的時候想讓你的網頁自動不停刷新,或者過一段時間自動跳轉到另外一個你自己設定的頁面?其實實現這個效果非常地簡單,而且這個效果甚至不能稱之為特效。你只要把如下代碼加入你的網頁中就可以了。

            1,頁面自動刷新:把如下代碼加入<head>區域中<meta http-equiv="refresh" content="20">,其中20指每隔20秒刷新一次頁面.

          posted @ 2008-03-12 17:20 秋楓故事 閱讀(1450) | 評論 (1)編輯 收藏

          關于window.opener

          window.opener 返回的是創建當前窗口的那個窗口的引用,比如點擊了a.htm上的一個鏈接而打開了b.htm,然后我們打算在b.htm上輸入一個值然后賦予a.htm上的一個id為“name”的textbox中,就可以寫為:

          window.opener.document.getElementById("name").value = "輸入的數據";

          posted @ 2008-03-12 17:15 秋楓故事 閱讀(180) | 評論 (0)編輯 收藏

          定時器改善

          以前的好像是用Timer類來實現的,后來的JDK有改善了:
          ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
            
            class RunnablTest implements Runnable
            {
             public void run()
             {
              System.out.println("ok");
             }
            }
            
              // 5秒后執行任務,每隔2秒執行一次任務:打印"ok"字符串
            executor.scheduleAtFixedRate(new RunnablTest(), 5, 2, TimeUnit.SECONDS);

          posted @ 2008-03-12 17:13 秋楓故事 閱讀(181) | 評論 (0)編輯 收藏

          many-to-many映射

          <class name="Person">
              <id name="id" column="personId">
                  <generator class="native"/>
              </id>
              <set name="addresses" table="PersonAddress">
                  <key column="personId"/>
                  <many-to-many column="addressId"
                      class="Address"/>
              </set>
          </class>

          <class name="Address">
              <id name="id" column="addressId">
                  <generator class="native"/>
              </id>
          </class>
          create table Person ( personId bigint not null primary key )
          create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )
          create table Address ( addressId bigint not null primary key )

          posted @ 2008-03-12 17:10 秋楓故事 閱讀(196) | 評論 (0)編輯 收藏

          java中棧(stack)與堆(heap)

           在java中內存分為“棧”和“堆”這兩種(Stack and Heap).基本數據類型存儲在“棧”中,對象引用類型實際存儲在“堆”中,在棧中只是保留了引用內存的地址值。
              順便說說“==”與“equals()方法”,以幫助理解兩者(Stack and Heap)的概念。
              在Java中利用"=="比較變量時候,系統使用變量在stack(棧)中所存的值來作為對比的依據,基本數據類型在stack中所存的值就是其內容值,而引用類型在stack中所存放的值是本身所指向Heap中對象的地址值。 Java.lang包中的Object類有public boolean equals (Object obj)方法。它比較兩個對象是否相等。僅當被比較的兩個引用指向同一對象時,對象的equals()方法返回true。(至于String類的equals()方法,是因為它重寫(override)equals()方法)

          posted @ 2008-03-12 17:06 秋楓故事 閱讀(329) | 評論 (0)編輯 收藏

          刪除HashMap中值注意事項

          java.util.Map m = new java.util.HashMap();
                  m.put("aaa", "aaa ");
                  m.put("bbb", " bbb");
                  m.put("ccc", "ccc   ");

                  Iterator iterator = m.keySet().iterator();
                  while (iterator.hasNext())
                  {
                      String sessionId = (String) iterator.next();
                      if ("aaa".equals(sessionId))
                      {
                          // 這行代碼是關鍵
                          iterator.remove();
                      }
                  }

          posted @ 2008-03-12 16:57 秋楓故事 閱讀(360) | 評論 (0)編輯 收藏

          java初始化順序

          在一個類里,初始化的順序是由變量在類內的定義順序決定的。即使變量定義大量遍布于方法定義的中間,那些變量仍會在調用任何方法之前得到初始化——甚至在構建器調用之前。例如:
          class Tag {
            Tag(int marker) {
              System.out.println("Tag(" + marker + ")");
            }
          }

          class Card {
            Tag t1 = new Tag(1); // 先初始化t1
            Card() {
              // Indicate we're in the constructor:
              System.out.println("Card()");
              t3 = new Tag(33); // Re-initialize t3
            }
            Tag t2 = new Tag(2); // 然后初始化t2
            void f() {
              System.out.println("f()");
            }
            Tag t3 = new Tag(3); // 接著初始化t3
          }

          public class OrderOfInitialization {
            public static void main(String[] args) {
              Card t = new Card();
              t.f(); // Shows that construction is done
            }
          }

          它的輸入結果如下:
          "Tag(1)",
             "Tag(2)",
             "Tag(3)",
             "Card()",
             "Tag(33)",
             "f()"
          // 以下是人綜合例子:
          //總的原則:先靜態后動態,先定義初始化,后構造函數初始化
          /**
             * 實例化Child對象時
             * 先父類靜態成員初始化,后子類靜態成員初始化
             * 然后是父類成員,父類構造函數,最后是子類
             * 成員,子類構造函數
          */

          class Parent {
           private static int s = getS("父類靜態成員");

           private int num = getNum();

           public Parent() {
            System.out.println("父類構造函數");
           }

           private static int getS(String string) {
            System.out.println(string);
            return 47;
           }

           public int getNum() {
            System.out.println("父類私有成員");
            return num;
           }

           public static void setS(int s) {
            Parent.s = s;
           }

          }

          class Child extends Parent {
           private int num = prt("子類私有成員");

           private static int s = getS("子類靜態成員");

           public static void setS(int s) {
            Child.s = s;
           }

           public Child() {
            System.out.println("子類構造函數");
           }

           public void setNum(int num) {
            this.num = num;
           }

           private int prt(String string) {
            System.out.println(string);
            return 5;
           }

           public static int getS(String string) {
            System.out.println(string);
            return s;
           }
          }


          public class Tee {

           /**
            * @param args
            */
           public static void main(String[] args) {
            Child c = new Child();
            c.setNum(100);

            // 為什么輸出的是0
            System.out.print(c.getNum());

          //  Child cStatic = new Child();
          //  cStatic.setS(100);
          //  System.out.println(cStatic.getS("s"));
               


           }

          }

          最后輸出結果:
          父類靜態成員
          子類靜態成員
          父類私有成員
          父類構造函數
          子類私有成員
          子類構造函數
          父類私有成員
          0

          posted @ 2008-03-12 15:09 秋楓故事 閱讀(408) | 評論 (0)編輯 收藏

          JAVA集合類總結

           

          l       HashSet:如果集合中對象所屬的類重新定義了equals()方法,那么這個類也必須重新定義hashCode()方法,并且保證當兩個對象用equals()方法比較的結果為true時,這兩個對象的hashCode()方法的返回值相等。

          l       TreeSet:如果對集合中的對象進行自然排序,要求對象所屬的類實現Comparable接口,并且保證這個類的compareTo()equals()方法采用相同的比較規則來比較兩個對象是否相等。

          l       HashMap:如果集合中鍵對象所屬的類重新定義了equals()方法,那么這個類也必須重新定義hashCode()方法,并且保證當兩個鍵對象用equals()方法比較的結果為true時,這兩個鍵對象的hashCode()方法的返回值相等。

          l       TreeMap:如果對集合中的鍵對象進行自然排序,要求鍵對象所屬的類實現Comparable接口,并且保證這個類的compareTo()equals()方法采用相同的比較規則來比較兩個對象是否相等。

          由此可見,為了使應用程序更加健壯,在編寫JAVA類時不妨養這樣的編程習慣:

          l       如果JAVA類重新定義了equals()方法,那么這個類也必須重新定義hashCode()方法,并且保證當兩個對象用equals()方法比較的結果為true時,這兩個對象的hashCode()方法的返回值相等。

          l       如果JAVA類實現了Comparable接口,那么應該重新定義compareTo()equals()hashCode()方法,保證compareTo()equals()方法采用相同的比較規則來比較兩個對象是否相等,并且保證當兩個對象用equals()方法比較的結果為true時,這兩個對象的hashCode()方法的返回值相等。

          posted @ 2008-03-12 14:29 秋楓故事 閱讀(250) | 評論 (0)編輯 收藏

          僅列出標題
          共5頁: 上一頁 1 2 3 4 5 下一頁 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          新聞檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 托克逊县| 高雄县| 临武县| 绿春县| 道孚县| 绥滨县| 宁阳县| 元氏县| 哈尔滨市| 施甸县| 交口县| 博罗县| 兴义市| 西青区| 抚顺市| 塘沽区| 科尔| 若尔盖县| 天等县| 休宁县| 土默特左旗| 崇明县| 巴林左旗| 贡觉县| 白山市| 凤翔县| 淮北市| 香格里拉县| 象山县| 贵州省| 平顺县| 潮安县| 昌吉市| 瑞安市| 瓮安县| 洛扎县| 大关县| 延安市| 康乐县| 镇沅| 古交市|