fossil

          鳥在籠中,恨關(guān)羽不能張飛 人處世上,要八戒更須悟空
          posts - 40, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

               摘要:   閱讀全文

          BeanSoft 2007-10-24 14:21 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/24/155586.html

          posted @ 2007-10-24 14:21 J2EE UP UP 閱讀(164) | 評論 (0)編輯 收藏

          這個分頁代碼基于 JDBC 2.0 的滾動游標(biāo)的機制, 核心觀念就是利用 ResultSet 類里面的 boolean absolute( int row ) throws SQLException 方法進(jìn)行數(shù)據(jù)的跳轉(zhuǎn).

          經(jīng)過測試(數(shù)據(jù)小于1萬條, SQL Server 2000), 這個方法比用復(fù)合 SQL 語句查詢分頁的方案要快很多.

          詳細(xì) JavaDoc 如下:

          Moves the cursor to the given row number in this ResultSet object.

          If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

          If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method absolute(-1) positions the cursor on the last row; calling the method absolute(-2) moves the cursor to the next-to-last row, and so on.

          An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before the first row or after the last row.

          Note: Calling absolute(1) is the same as calling first(). Calling absolute(-1) is the same as calling last().

          Parameters:

          row the number of the row to which the cursor should move. A positive number indicates the row number counting from the beginning of the result set; a negative number indicates the row number counting from the end of the result set

          Returns:

          true if the cursor is on the result set; false otherwise

          Throws:

          SQLException if a database access error occurs, or the result set type is TYPE_FORWARD_ONLY

          @since

          1.2

          /*
          
          * @(#)Pager.java 1.00 2004-8-12
          
          *
          
          * Copyright 2004 . All rights reserved.
          
          * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
          
          */
          
          import java.sql.Connection;
          
          import java.sql.ResultSet;
          
          import java.sql.Statement;
          
          import java.util.Vector;
          
          /**
          
          * Pager, 基于 JDBC 2.0 滾動機制的分頁程序, 在 MySQL, SQLServer, Access, Oracle 下測試通過.
          
          * @author 劉長炯
          
          * @version 1.0 2004-8-12
          
          */
          
          public class Pager {
          
          /** Used database connection */
          
          Connection conn = null;
          
          public Pager() {
          
          }
          
          /**
          
          * 分頁功能, 返回當(dāng)頁的數(shù)據(jù)(JDBC 2.0 實現(xiàn)).
          
          * 
          
          * @param currentPage
          
          * 當(dāng)前頁面數(shù)(取值范圍: 從 1 開始有效, 0 自動改為 1)
          
          * @param pageCount
          
          * 每頁顯示記錄數(shù)
          
          * 
          
          * @return a Vector - 數(shù)據(jù)列表
          
          */
          
          public Vector pageData(int currentPage, int pageCount) {
          
          Vector results = new Vector();
          
          String tableName = "table_name";// 要處理的表格名
          
          ResultSet rs = null;
          
          String sql = "SELECT * FROM " + tableName;
          
          Statement stmt = null;
          
          try {
          
          // TODO: open connection
          
          // 生成可滾動的結(jié)果集表達(dá)式
          
          stmt = conn.createStatement(ResultSet.
          
          TYPE_SCROLL_SENSITIVE,
          
          ResultSet.CONCUR_READ_ONLY);
          
          rs = stmt.executeQuery(sql);
          
          int count = recordCount(); // 總記錄數(shù)
          
          int totalPage = (int) Math.ceil(1.0 * count / pageCount); // 總頁面數(shù)
          
          if (currentPage <= 0) {
          
          currentPage = 1;
          
          }
          
          // 超出頁碼范圍, 不返回數(shù)據(jù)
          
          if (currentPage > totalPage) {
          
          currentPage = totalPage;
          
          return results;
          
          }
          
          if ((currentPage - 1) * pageCount > 0) {
          
          // 移動結(jié)果集數(shù)據(jù)到當(dāng)前頁
          
          rs.absolute((currentPage - 1) * pageCount);
          
          }
          
          // rs.absolute(0); 在 ODBC 下會導(dǎo)致如下異常:java.sql.SQLException: Cursor
          
          // position (0) is invalid
          
          int i = 0; // Readed pages
          
          while (rs.next() && i < pageCount) {
          
          i++;
          
          // TODO: Read each row and process to value object
          
          ValueObject bean = new ValueObject();
          
          // TODO: Read value to value object
          
          result.add(bean);
          
          }
          
          } catch (Exception exception) {
          
          System.out.println("Occur a error in " + getClass()
          
          + ".pageData() : " + exception.getMessage());
          
          // exception.printStackTrace();
          
          } finally {
          
          closeJDBCResource(stmt);
          
          closeJDBCResource(rs);
          
          closeJDBCResource(conn);
          
          }
          
          return results;
          
          }
          
          /**
          
          * 返回當(dāng)前數(shù)據(jù)庫中記錄的總數(shù).
          
          * 
          
          * @return int 記錄總數(shù)
          
          */
          
          public int recordCount() {
          
          int allCount = -1;
          
          String tableName = "table_name";// 要處理的表格名
          
          String sql = "SELECT COUNT(*) FROM " + tableName;
          
          ResultSet rs = null;
          
          Statement stmt = null;
          
          try {
          
          // TODO: open connection
          
          stmt = conn.createStatement();
          
          rs = stmt.executeQuery(sql);
          
          if (rs.next()) {
          
          allCount = rs.getInt(1);
          
          }
          
          } catch (Exception exception) {
          
          System.out
          
          .println("Occur a error in " + getClass()
          
          + ".recordCount() : " + exception.getMessage());
          
          } finally {
          
          closeJDBCResource(stmt);
          
          closeJDBCResource(rs);
          
          closeJDBCResource(conn);
          
          }
          
          return allCount;
          
          }
          
          /**
          
          * Close a jdbc resource, such as ResultSet, Statement, Connection.... All
          
          * these objects must have a method signature is void close().
          
          * 
          
          * @param resource -
          
          * jdbc resouce to close
          
          */
          
          public static void closeJDBCResource(Object resource) {
          
          try {
          
          Class clazz = resource.getClass();
          
          java.lang.reflect.Method method = clazz.getMethod("close", null);
          
          method.invoke(resource, null);
          
          } catch (Exception e) {
          
          e.printStackTrace();
          
          }
          
          }
          
          /**
          
          * Test page.
          
          * @param args
          
          */
          
          public static void main(String[] args) {
          
          // 分頁, 讀取第一頁數(shù)據(jù), 共讀取5個記錄
          
          Vector data = new Pager().pageData(1, 5);
          
          // TODO: process value object, 更改類名
          
          for(int i = 0; results != null && i < data.size(); i++) {
          
          ValueObject bean = (ValueObject)data.get(i);
          
          }
          
          }
          
          }
          


          BeanSoft 2007-10-23 16:00 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/23/155318.html

          posted @ 2007-10-23 16:00 J2EE UP UP 閱讀(204) | 評論 (0)編輯 收藏

          2005 年的時候幫人收集整理修改的一份腳本級聯(lián)菜單, 沒用到 AJAX, 寫死的數(shù)據(jù). 效果自己試試就知道了. 支持主流瀏覽器. 自己現(xiàn)在看看這代碼就覺得頭大... 呵呵 腳本就是腳本啊. 一段時間放下就看不懂了.

           

          三級關(guān)聯(lián)菜單

           

          <HTML>
          <HEAD>
          <TITLE>合同申請</TITLE>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <SCRIPT LANGUAGE = JavaScript>
          /** Define object Dsy 構(gòu)造器
          fieldValues - 三個表單域的名稱, 可以通過 request.getParameter(xxx) 取值
          defalutOptions - 默認(rèn)選項
          */
          function Dsy(fieldValues, defalutOptions){
            this.Items = {};
            this.defalutOptions = defalutOptions;// 默認(rèn)選項 
            this.fieldValues = fieldValues;// 三個表單域的名稱
          }

          Dsy.prototype.add = function(id, iArray){
            this.Items[id] = iArray;
          }

          Dsy.prototype.Exists = function(id){
            if (typeof(this.Items[id]) == "undefined")
              return false;
            return true;
          };

          Dsy.prototype.setup = function() {
              this.bean_change(0);
          }

          // This prototype method added by BeanSoft Studio
          Dsy.prototype.bean_change = function(v){
            var str = "0";
            for (i = 0; i < v; i++){
              str += ("_" + (document.getElementById(this.fieldValues[i]).selectedIndex - 1));
            };

            var ss = document.getElementById(this.fieldValues[v]);
            // Avoid a null exception
            if(ss == null) return;

              with(ss){
                length = 0;
                options[0] = new Option(this.defalutOptions[v], this.defalutOptions[v]);
                if (v && document.getElementById(this.fieldValues[v - 1]).selectedIndex > 0 || !v){
                  if (this.Exists(str)){
                    array = this.Items[str];
                    for (i = 0; i < array.length; i++)
                      options[length] = new Option(array[i], array[i]);
                    if (v)
                      options[1].selected = true;
                  }
                }

                if (++v < s.length){
                  this.bean_change(v);
                }
              }
          }

            function change(v){   
              dsy.bean_change(v);// Call test prototype
            }

            // Write form data string, 輸出表單腳本代碼
            // dsy, object name
            // varName, 變量名
            function toString(dsy, varName) {
              var str = "";
              for(i = 0; i < dsy.fieldValues.length; i++) {
                  str += "<select id=\"" + dsy.fieldValues[i] + "\" onChange=\"" + varName + ".bean_change(" + (i + 1)
                      + ");\"></select>\r\n";
              }
              str += "<br/>";
              return str;
            }

          // 第一個對象
            var dsy = new Dsy(["s1", "s2", "s3"], ["銷售方名稱", "銷售方聯(lián)系人", "聯(lián)系電話"]);
            var dsy1 = new Dsy(["s4", "s5", "s6"],  ["最終用戶名稱", "最終用戶聯(lián)系人", "聯(lián)系電話"]);
            var dsy2 = new Dsy(s = ["s7", "s8", "s9"], ["廠商", "廠商銷售", "聯(lián)系電話"]);

          // 填入數(shù)據(jù), 重復(fù)的代碼
            dsy.add("0", ["亞信", "航天理想"]);

            dsy.add("0_0", ["亞信聯(lián)系人_1", "亞信聯(lián)系人_2"]);
            dsy.add("0_0_0", ["亞信聯(lián)系人_1聯(lián)系電話"]);
            dsy.add("0_0_1", ["亞信聯(lián)系人_2聯(lián)系電話"]);

            dsy.add("0_1", ["航天理想聯(lián)系人_1", "航天理想聯(lián)系人_2"]);
            dsy.add("0_1_0", ["航天理想聯(lián)系人_1聯(lián)系電話"]);
            dsy.add("0_1_1", ["航天理想聯(lián)系人_2聯(lián)系電話"]);

            dsy1.add("0", ["最終用戶1", "最終用戶2"]);

            dsy1.add("0_0", ["最終用戶1_聯(lián)系人1", "最終用戶1_聯(lián)系人2"]);
            dsy1.add("0_0_0", ["最終用戶1_聯(lián)系人1_電話"]);
            dsy1.add("0_0_1", ["最終用戶1_聯(lián)系人2_電話"]);

            dsy1.add("0_1", ["最終用戶2_聯(lián)系人1", "最終用戶2_聯(lián)系人2"]);
            dsy1.add("0_1_0", ["最終用戶2_聯(lián)系人1_電話"]);
            dsy1.add("0_1_1", ["最終用戶2_聯(lián)系人2_電話"]);

            dsy2.add("0", ["BEA", "Horizon"]);

            dsy2.add("0_0", ["張學(xué)友", "BeanSoft"]);
            dsy2.add("0_0_0", ["1234567890"]);
            dsy2.add("0_0_1", ["beansoft@126.com"]);

            dsy2.add("0_1", ["AAA", "BBB"]);
            dsy2.add("0_1_0", ["AAA_99999"]);
            dsy2.add("0_1_1", ["bbb_88888"]);

            function setup(){  // Initialize the object
              dsy.setup(); //依次調(diào)用 setup
              dsy1.setup();
              dsy2.setup();
            }

          function prints1(){
              alert(document.frm.s1.value + " " + document.frm.s2.value + " " + document.frm.s3.value +"\r\n");
          }

          //isNaN()檢查運算結(jié)果  http://tech.ccidnet.com/pub/article/c1115_a120997_p1.html

          </SCRIPT>

          </head>
          <body bgcolor="#E0E0E0" onload="setup()">
          多級關(guān)聯(lián)菜單:
          <form name="frm">

          <!-- 方式1: 手工輸出 HTML 代碼, 便于排版
          <select id="s1" onChange="dsy.bean_change(1);"></select>
          <select id="s2" onChange="dsy.bean_change(2);"></select>
          <select id="s3" onChange="dsy.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s4" onChange="dsy1.bean_change(1);"></select>
          <select id="s5" onChange="dsy1.bean_change(2);"></select>
          <select id="s6" onChange="dsy1.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s7" onChange="dsy2.bean_change(1);"></select>
          <select id="s8" onChange="dsy2.bean_change(2);"></select>
          <select id="s9" onChange="dsy2.bean_change(3);"></select>
          -->
          <SCRIPT LANGUAGE="JavaScript">
          <!--
          // 方式2: 腳本輸出表單 HTML 代碼, 代碼和上面注釋掉的類似
          document.write(toString(dsy, "dsy"));
          document.write(toString(dsy1, "dsy1"));
          document.write(toString(dsy2, "dsy2"));
          //-->
          </SCRIPT>

          <input type=button name=b1 value="監(jiān)測" onclick="prints1()">

          </form>

          </body>
          </html>



          BeanSoft 2007-10-22 10:43 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/22/154898.html

          posted @ 2007-10-22 10:43 J2EE UP UP 閱讀(254) | 評論 (0)編輯 收藏

          注: 昨天用 VMWare 試了試 Fedora Live, 下載地址: ftp://download.fedora.redhat.com/pub/fedora/linux/releases/7/Live/i386/ 里面的兩個 ISO 隨便下一個就行了, 還不錯, 安裝后登錄選擇語言, 竟然支持中文和中文輸入法, 要知道現(xiàn)在想找個安裝包為700MB 的 Linux 還能支持中文的還真不多啊. 不過感覺有點吃內(nèi)存, 響應(yīng)上不如 RedHat 快. 安裝后占用了 2.54 G 的空間.

          image

          June 5th, 2007

          Fedora 7 Live 安裝手記

          Category: Ubuntu, Author: Nicky, Popularity: 30%

          fedora-logo.png
          這次 Fedora 7 提供的 CD 鏡像分為兩大版本,F(xiàn)edora 7 Live 和 Fedora 7 KDE Live,前者默認(rèn)采用 GNOME 桌面環(huán)境,后者集成 KDE 環(huán)境,只有在 DVD 版中才同時提供 GNOME 和 KDE 這兩個供選擇。用過 Redhat Linux 的都知道,在安裝的時候可以選擇一個桌面環(huán)境,也可以同時選擇它們,現(xiàn)在 Fedora 7 真有點 Ubuntu 和 Kubuntu 的意思。我下載的是 Fedora 7 Live i686 來嘗試,整個安裝過程分為兩方面,安裝和配置,共 16 大步驟,花了我 30 張截圖,不過絕大多數(shù)設(shè)置默認(rèn)就行,重點還是在分區(qū)上。

          下面是安裝全過程。

          一、進(jìn)入 Live 桌面

          1、下載 Fedora 7 Live,設(shè)置為光盤啟動后,選擇第一個從光盤鏡像啟動。

          2、直接回車進(jìn)入

          3、進(jìn)入到 Live 桌面

          這種 Live 安裝方式,對桌面用戶來說是最爽的。

          二、進(jìn)行安裝

          1、雙擊桌面 install to fedora 圖標(biāo)開始安裝。

          2、選擇鍵盤布局。

          3、問你是否初始化這個驅(qū)動器,選擇 Yes,否則無法繼續(xù)。

          4、開始分區(qū),選擇 Create custom layout,自定義分區(qū)。

          Linux 分區(qū)和文件系統(tǒng)的選擇可以參考這篇文章

          可惜不提供 ReiserFS 文件系統(tǒng)的選擇。

          分區(qū)結(jié)束,點擊 Next。

          如果提示 Low Memory,選擇 Yes。

          5、選擇 GRUB 安裝位置,點擊 Next。

          6、網(wǎng)絡(luò)設(shè)備配置,可以讓它默認(rèn),點擊 Next。

          7、選擇時區(qū),可以在下拉菜單中選擇,建議直接在地圖上點擊。

          8、設(shè)置超級用戶 root 的口令。

          9、安裝配置結(jié)束,點擊 Next 開始進(jìn)行安裝。

          自動安裝過程

          10、安裝結(jié)束,點擊 Close 重新引導(dǎo)系統(tǒng)。

          三、安裝后的設(shè)置

          1、重新引導(dǎo),進(jìn)入 GRUB 畫面。

          可以看到核心是 2.6.21,比 Ubuntu 7.04 稍高一點。

          啟動畫面很漂亮。

          2、開始進(jìn)行設(shè)置,這里面大多數(shù)都可以默認(rèn),直接 Forward 就是。

          3、直接 Forward。

          4、選擇在哪些服務(wù)上啟用防火墻,可以都不選擇。

          5、直接 Forward。

          6、設(shè)置時間。

          7、發(fā)送硬件信息到服務(wù)器,選 Do not send profile,點擊 Forward。

          再說一次 No, do not send。

          8、建立個人帳戶信息

          如果提示口令太弱,不管它,點擊 Yes。

          9、聲卡設(shè)置,完成點擊 Finish。

          到這里 Fedora 7 Live 的安裝才算徹底完成了,雖然很多步驟可以默認(rèn),直接點擊下一步,但相比 Ubuntu 7 步加 15 分鐘安裝的過程,說不繁瑣那是騙人的。

          來自: http://www.osxcn.com/ubuntu/fedora-7-installation-notes.html



          BeanSoft 2007-10-20 10:18 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/20/154442.html

          posted @ 2007-10-20 10:18 J2EE UP UP 閱讀(311) | 評論 (0)編輯 收藏

          用戶可在 NetBeans 中開發(fā) JSR 295 (Beans Binding) 和 JSR 296 (Swing Application Framework) 的應(yīng)用。本教程演示了這一過程。

           



          BeanSoft 2007-10-19 13:09 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/19/154173.html

          posted @ 2007-10-19 13:09 J2EE UP UP 閱讀(1267) | 評論 (0)編輯 收藏

          從網(wǎng)上找的版本呢, 有白邊. 今天花時間改進(jìn)了一下, 效果打開頁面的時候你就應(yīng)該看到了. 如果配合 AJAX 做基于網(wǎng)頁版 Outlook 通知的話會有一點點用. 首先感謝最初的原作者(轉(zhuǎn)載的太多了, 找不到了).

          顯示效果:

          image
          其實有人做的有更好的版本, 參考這里(也是僅支持IE的):
          Web的桌面提醒(Popup) 效果演示: http://webuc.net/MyProject/Popup/popup.htm
          下載: http://webuc.net/MyProject/Popup/popup.rar

          blogjava_popup_outlook

          < SCRIPT >
          var oPopup;
          try {
          oPopup
          = window.createPopup();
          }
          catch (e) {
          window.status
          = '彈出通知消息僅能用于 IE 下 ! ';
          }

          var popTop = 10 ;
          var mytime;

          function popmsg(msgstr){
          if ( ! oPopup) {
           
          return ;
          }
          oPopup.document.body.innerHTML
          = msgstr;
          popshow();
          }

          function popshow(){
          // window.status=popTop;
          if (popTop >   1720 ){
          clearTimeout(mytime);
          oPopup.hide();
          return ;
          }
          else   if (popTop >= 1720   -   108   && popTop <=   1720 ){
            oPopup.show(screen.width
          - 200 ,screen.height, 193 , 1720   - popTop);
          }
          else   if (popTop >= 1500   && popTop <   1720   -   108 ){
          oPopup.show(screen.width
          - 200 , screen.height -   220   + (popTop -   1500 ), 193 , 108 );
          }
          else   if (popTop <= 108 ){
          oPopup.show(screen.width
          - 200 , screen.height, 193 , popTop);
          }
          else   if (popTop <= 220 ){
          oPopup.show(screen.width
          - 200 , screen.height - popTop, 193 , 108 );
          }
          else {
           
          // window.status=popTop + "  else";
            oPopup.show(screen.width - 200 , screen.height - 220 , 193 , 108 );
          }

          popTop
          +=   10 ;
          mytime
          = setTimeout( " popshow(); " , 40 );
          }

          function hidePop() {
            clearTimeout(mytime);
            oPopup.hide();
          }

          popmsg(
          " <div onclick='window.parent.hidePop()' title='點擊隱藏' style='cursor:pointer; background-image: url(http://www.aygfsteel.com/images/blogjava_net/beansoft/18269/o_qqbg.gif); width:193; height:108; color:white; padding-top:1em; padding-left:5; font-size:11pt; color:white' ><center><b>BlogJava 系統(tǒng)消息<br><br>請留言或者捐款支持 BeanSoft 的 Java EE 學(xué)習(xí)視頻, 謝謝 !!</b></center></div> " );

          </ SCRIPT >

           

          最后來一個支持頁面內(nèi)的跨瀏覽器的:

          blogjava_popup_msn_in

          完美仿MSN右下角彈出廣告代碼并可自動消失,附帶關(guān)閉按鈕.

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <title>先飛電腦技術(shù)網(wǎng)</title>
          </head>
          <Script language="JavaScript">
          <!--
          window.onload = getMsg;
          window.onresize = resizeDiv;
          window.onerror = function(){}
          //短信提示使用(asilas添加)
          var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
          function getMsg()
          {
              try{
              divTop = parseInt(document.getElementById("eMeng").style.top,10)
              divLeft = parseInt(document.getElementById("eMeng").style.left,10)
              divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
              divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
              docWidth = document.body.clientWidth;
              docHeight = document.body.clientHeight;
              document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;//  divHeight
              document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth
              document.getElementById("eMeng").style.visibility="visible"
              objTimer = window.setInterval("moveDiv()",10)
              }
              catch(e){}
          }

          function resizeDiv()
          {
              i+=1
              if(i>300) closeDiv()    //客戶想不用自動消失由用戶來自己關(guān)閉所以屏蔽這句
              try{
              divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
              divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
              docWidth = document.body.clientWidth;
              docHeight = document.body.clientHeight;
              document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)
              document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)
              }
              catch(e){}
          }

          function moveDiv()
          {
              try
              {
              if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))
              {
              window.clearInterval(objTimer)
              objTimer = window.setInterval("resizeDiv()",1)
              }
              divTop = parseInt(document.getElementById("eMeng").style.top,10)
              document.getElementById("eMeng").style.top = divTop - 1
              }
              catch(e){}
          }
          function closeDiv()
          {
              document.getElementById('eMeng').style.visibility='hidden';
              if(objTimer) window.clearInterval(objTimer)
          }
          -->
          </Script>

          <!--溫馨提示代碼開始-->

          <DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3">
              <TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#AFDCF3 border=0>
              <TBODY>
                  <TR bgColor=#6699cc>
                      <TD style="font-size: 12px; background-image: url('msgTopBg.gif'); color: #0f2c8c" width=30 height=24></TD>
                      <TD style="font-weight: normal; font-size: 12px; background-image: url('msgTopBg.gif'); color: #ffffff; padding-left: 4px; padding-top: 4px" vAlign=center width="100%"> 網(wǎng)站溫馨提示:</TD>
                      <TD style="background-image: url('msgTopBg.gif'); padding-right: 2px; padding-top: 2px" vAlign=center align=right width=19><span title=關(guān)閉 style="CURSOR: hand;color:white;font-size:12px;font-weight:bold;margin-right:4px;" onclick=closeDiv() >×</span><!--<IMG title=關(guān)閉 style="CURSOR: hand" onclick=closeDiv() hspace=3 src="msgClose.jpg">--></TD>
                  </TR>
                  <TR>
                      <TD style="background-image: url(' padding-right: 1px; padding-bottom: 1px" colSpan=3 height=90>
                          <DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">先飛電腦技術(shù)網(wǎng)全新改版,免費精品網(wǎng)絡(luò)資源,你用了嗎?<BR>
                          <DIV align=center style="word-break:break-all"><!--<a href="
          target="_blank">--><a href=" target="_blank">
                          <font color=#FF0000>進(jìn)入網(wǎng)站瀏覽</font></a></DIV>

                          </DIV>
                      </TD>
                  </TR>
              </TBODY>
              </TABLE>
          </DIV>
          <!--溫馨提示代碼結(jié)束-->
          </html>



          BeanSoft 2007-10-18 23:03 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/18/154020.html

          posted @ 2007-10-18 23:03 J2EE UP UP 閱讀(312) | 評論 (0)編輯 收藏

          Struts 里面的 <html:text> 之類的表單域標(biāo)簽, 都有一個屬性叫: property, 這個屬性根據(jù)文檔是可以嵌套的, 例如下面的 formBean 嵌套了一個屬性 User:

          public class User {
            private String username;
            
            public String getUsername() {
              return username;
            }
            
            public void setUsername(String username) {
              this.username = username;
            }
          }

           

          public class UserForm extends FormBean {
            private User user;
            
            public User getUser() {
              return user;
            }
            
            public void setUser(User user) {
              this.user = user;
            }
          }

           

          那么對應(yīng)的 JSP 頁面里的  Tag 可以寫成:

          <html:text property="user.username" />

          但是如果這時候有人還想給生成的表單加入 JavaScript 驗證的話, 必須用下面的寫法才能通過:

          <script> // 表單驗證函數(shù) function validateForm(form) { // this.user.username 會報錯 alert( this['user.username'] ); if(this['user.username'] .value == "") { alert("用戶名不能為空!"); return false; } return true; }
          </script>

          這是因為 Struts 標(biāo)簽最后產(chǎn)生的 HTML 如下所示:

           

          <form onsubmit="return validateForm(this);">
          <input name="user.username" />
          </form>

           

          直接引用 元素.user.username 肯定會出錯的. 正確的方法參考上上面的代碼段即可.



          BeanSoft 2007-10-17 14:24 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/17/153565.html

          posted @ 2007-10-17 14:24 J2EE UP UP 閱讀(816) | 評論 (0)編輯 收藏

          目前在 http://developers.sun.com.cn 已正式宣布發(fā)布Java SE 6 API 中文版。
          大家也可以從以下網(wǎng)址下載:
          * HTML 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html  )
          * zip 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_zh_CN.zip  )
          * CHM 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/chm/JDK_API_1_6_zh_CN.CHM  )

          http://gceclub.sun.com.cn/NASApp/sme/jive/thread.jsp?forum=35&thread=44422



          BeanSoft 2007-10-14 11:01 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/14/152693.html

          posted @ 2007-10-14 11:01 J2EE UP UP 閱讀(412) | 評論 (0)編輯 收藏

          這篇文章, 個人認(rèn)為非常片面和誤導(dǎo), 至于后記, 更是垃圾.  至于怎么樣, 大家自己看, 呵呵. 起碼, 企業(yè)不是軍隊, 領(lǐng)導(dǎo)不是總統(tǒng), 員工也不是軍人, 社會的發(fā)展又不是戰(zhàn)爭.

           

          在一切有關(guān)古巴的事物中,有一個人最讓我忘不了。
                    當(dāng)美國戰(zhàn)爭爆發(fā)后,美國必須立即跟西班牙的反抗軍首領(lǐng)取得聯(lián)系。加西亞將軍在古巴叢林的山里—沒人知道確切的地點,所以無法寫信或打電話給他。美國總統(tǒng)必須盡快地獲得他的合作。
                  怎么辦呢?
                 有人對總統(tǒng)說:“有一個叫羅文的人,有辦法找到加西亞,也只有他才找得到。”
          他們把羅文找來,交給他一封寫給加西亞的信。關(guān)于那個“名叫羅文的人”,如何拿了信,把它裝進(jìn)一個油布制的袋里,封好,吊在胸口,劃著一艘小船,四天之后的一個夜里在古巴上岸,消逝于叢林中,接著在三個星期之后,從古巴島的那一邊出來,已徒步走過一個危機四伏的國家,把那封信交給了加西亞—這些細(xì)節(jié)都不是我想說明的。我要強調(diào)的重點是:麥金利總統(tǒng)把一封寫給加西亞的信交給了羅文;而羅文接過信之后,并沒有問:“他在什么地方?”像他這種人,我們應(yīng)該為他塑造不朽的雕像,放在每一所大學(xué)里。年輕人所需要的不是學(xué)習(xí)書本上的知識,也不是聆聽他人種種的指導(dǎo),而是要強調(diào)一種敬業(yè)精神,對于上級的托付,立即采取行動,全心全意去完成任務(wù)—“把信帶給加西亞”。
          加西亞將軍已不在人間,但現(xiàn)在還有其他的加西亞。凡是需要眾多人才的企業(yè)經(jīng)營者,有時候都會因為一般人的被動——無法或不愿意專心去做一件事——而大吃一驚:懶懶散散,漠不關(guān)心,馬馬虎虎的做事態(tài)度,似乎已經(jīng)變成常態(tài);除非苦口婆心、威迫利誘地叫屬下幫忙,或者除非奇跡出現(xiàn)——上帝派一名助手給他,沒有人能把事情辦成。
                  不信的話,我們來做個試驗:你此刻坐在辦公室—周圍有6名職員。其中一名叫來,對他說:“請幫我查一查百科全書,把哥立奇的生平做成一篇摘錄。”
                  那人職員會靜靜地說:“好的,先生”,然后說去執(zhí)行嗎?我敢說他絕不會。他反而會滿臉狐疑地提出一個或數(shù)個下列的問題:
                  他是誰呀?
                  哪套百科全書?
                  這是我的工作嗎?
                  你不是指俾斯麥吧?
                  為什么不叫查理去做呢?
                  他是過世的人嗎?
                  急不急?
                  我是否把書拿來,由你自己來查?
                  你為什么要查他?
                  我敢以10比1的賭注跟你打賭,在你回答了他所提出的問題、解釋了怎么樣去查那資料,以及你為什么要查的理由之后,那個職員會走開,去找另一個職員幫他查哥立奇的資料,然后又回來對你說,根本查不到這個人。當(dāng)然,我這個打賭可能會輸,但根據(jù)或然率,我還是會贏的。真的,如果你是聰明人,你就不會對你的“助理”解釋,你會滿面笑容地說“算啦”,然后自己去查。這種被動的行為,這種道德的愚行,這種心靈的脆弱,這種姑息的作風(fēng)—都在把這個社會帶到三個和尚沒水喝的危險境界。如果人們都不能為了自己而自動自發(fā),你又怎么能期待他們?yōu)閯e人采取行動呢?
                   你登廣告征求一名速記員,而應(yīng)征者中,十之八九不會拼也不會寫——他們甚至不認(rèn)為這些是必要條件。這種人能寫出一封給加西亞的信嗎?
                  在一家大公司里,總經(jīng)理對我說:“你看那個簿記員。”
                 “我看到了,他怎樣?”
                 “他是個不錯的會計,不過如果我派他到城里去辦個小差事,他可能把任務(wù)完成,但也可能就在途中走進(jìn)一家酒吧,而當(dāng)他到了鬧市區(qū),可能根本忘了他的差事。”
                    這種人你能派他送信給加西亞嗎?
                   近來我們聽到,許多人為“那些為了廉價工資工作而又無出頭之日的工人”,以及為“那些為求溫飽而工作的無家可歸人士”表示出同情,同時又把那些雇主罵得體無完膚。
                   但從沒有人提到,有些老板一直到年老,都無法使有些不求上進(jìn)的懶蟲做點正經(jīng)的工作;也沒有人提到,有些老板長久而耐心地想感動那些當(dāng)他一轉(zhuǎn)身就投機取巧的 “員工”。在每一個商店和工廠,都有一個持續(xù)的整頓過程。公司負(fù)責(zé)人經(jīng)常地送走那些顯然無法對公司有所貢獻(xiàn)的“員工”,同時也吸引新的進(jìn)來。不論業(yè)務(wù)怎么忙碌,這種整頓一直進(jìn)行著。只有當(dāng)景況不佳,就業(yè)機會不多,整頓才會出現(xiàn)較佳的成績——那些不能勝任沒有才能的人,都被摒棄在就業(yè)的大門之外。只有最能干的人,才會被留下來。為了自己的利益,使得每個老板只保留對那些最佳的職員——那些能夠把信帶給加西亞的人。
                   我認(rèn)識一個極為聰明的人,他沒有自己創(chuàng)業(yè)的能力,而對別人來說也沒有一絲一毫的價值,因為他老是瘋狂地懷疑他的雇主在壓榨他,或存心壓迫他。他無法下命令,也不敢接受命令。如果你要他帶封信給加西亞,他極可給回答說:“你自己帶去吧!”
          當(dāng)然,我知道像他這種道德不健全的人更值得同情;但是,我們也不會同情那些努力去從事一項大事業(yè)的人,他們不會因為下班的鈴聲而放下工作。他們因為努力去使那些漠不關(guān)心、偷懶被動、沒有良心的員工不至于離譜而日增白發(fā)。如果沒有這份努力和心血,那些員工將挨餓和無家可歸。
                  我是否說得太嚴(yán)重了?也許是吧。不過,當(dāng)整個世界變成貧民窟,我要為成功者說幾句同情的話——在成功機會極小之下,他導(dǎo)引別人的力量,終于獲得了成功;但他從成功中所得到的一片空虛,除了食物之外,就是一片空無。我曾經(jīng)是為了三餐而替人工作的人,也曾經(jīng)當(dāng)過老板,我知道這兩面的種種。貧窮是不好的;貧苦是不值得推介的;并非所有老板都是婪都、專橫者,就像并非所有的人都是善良者。
                   我欽佩的是那些不論老板是否在辦公室都努力工作的人;我也敬佩那些能夠把信交給加西亞的人;靜靜地把信拿去,不會提出任何愚笨問題,也不會存心隨手把信丟進(jìn)水溝里,而是不顧一切地把信送到;這種人永遠(yuǎn)不會被“解雇”,也永遠(yuǎn)不必為了要求加薪而罷工。文明,就是為了焦心地尋找這種人才的一段長遠(yuǎn)過程。這種人不論要求任何事物都會獲得。他在每個城市、村莊、鄉(xiāng)鎮(zhèn)—每個辦公室、公司、商店、工廠,都會受到歡迎。世界上急需這種人才,這種能夠把信帶給加西亞的人。

          后記:
                   這是一個很多人都知道的故事,講述了一個可能改變一場戰(zhàn)爭結(jié)局或一個國家命運的敬業(yè)守責(zé)的人的故事,這讓人在許多方面心生感慨。卡內(nèi)基把它與企業(yè)經(jīng)營聯(lián)系起來,閱讀這篇文章,最強的感覺就是:卡內(nèi)基怎么知道那么多我們企業(yè)的事?不僅有經(jīng)營者的心聲,也有職員的感受。在充斥著懶懶散散、漠不關(guān)心、馬馬虎虎做事態(tài)度的表象下,能把信帶給加西亞的人才彌足珍貴。
                  那么,我們來看一下能把信帶給加西亞的人具有什么樣的特質(zhì):
            ——“把信帶給加西亞”要有積極的態(tài)度,這個積極的態(tài)度會決定下一步的一切行動。國內(nèi)一知名企業(yè)宣揚自己的工作理念是,“企業(yè)的每個員工不是螺絲釘而是發(fā)動機”,當(dāng)然,發(fā)動機固然可以促進(jìn)企業(yè)加大馬力發(fā)展,但不合格的螺絲釘同樣會影響到整個機器的運轉(zhuǎn),如果做不了強大的發(fā)動機,那就安心做好一顆螺絲釘吧,努力做實事,盡心盡力,是一顆稱職的螺絲釘應(yīng)有的本份,好高鶩遠(yuǎn),眼高手低,能“把信帶給加西亞”嗎?   ——“把信帶給加西亞”要有主動的行動,行動本身就含有可能遇到麻煩甚至危險的含義,積極的行動就是要主動解決這些問題和麻煩,而不是被動地等待,消極地推諉。一家企業(yè)的老板炒掉了他們企業(yè)惟一的一名研究生,研究生不依不撓詢問被炒的原因,老板說,你找到的只是一份工作,而不是一項事業(yè)。勇于承擔(dān)責(zé)任,積極付出努力,我的上司說過一句雖然粗糙但很有道理的話:企業(yè)怎樣才能做好?就一條,你家里的事怎么做,你在公司就怎么做。
            ——“把信帶給加西亞”要有極強的責(zé)任心,沒有哪個人說自己沒有責(zé)任心,但缺乏責(zé)任心幾乎無處不體現(xiàn),有些人整日抱怨,有些人投機取巧,有些人劃地自封,有些人會找各種借口為自己開脫,這些都無法掩蓋責(zé)任心的缺乏……
            如此看來,卡內(nèi)基在文章中提到的“把信帶給加西亞”的人是一個盡心盡力做好本職工作的人應(yīng)當(dāng)具備的素質(zhì),并不是什么高不可攀的要求,但為什么在社會中,不缺各類專業(yè)人才,不乏各種精英,卻獨獨缺乏“能把信帶給加西亞”的人?是制度的某種缺陷?文化的丑陋一面?還是個體的差異?似乎都不能完全解釋。卡內(nèi)基是實證主義,他由此及彼,得出的結(jié)論也讓人信服。如果卡內(nèi)基是個中國人,我們會和他討論一下世界觀的問題,那些不能“把信送給加西亞”的人一定是世界觀出了毛病,是對生活的態(tài)度出了偏差,我們崇尚的是“世界上怕就怕‘認(rèn)真’二字”、“認(rèn)真對待生活的人,生活一定會認(rèn)真對待你”,聽起來似乎與企業(yè)經(jīng)營相差較遠(yuǎn),但做事與做人是一致的,對生活采取敷衍態(tài)度的人不是能“把信送給加西亞”的。
                 如果你最近因為工作方面的事感到郁悶,比如你覺得老板對你不公、同事不好好和你配合、待遇太低要求加薪,或者因為自己的遠(yuǎn)大理想正面臨新的選擇,那么請抽出半個小時閱讀這本《致加西亞的信》,它會幫你從另一個角度認(rèn)識自己。
          我也相信新空間公司里也有很多很好的“羅文”,但實際上大部分人都不能“主動準(zhǔn)時地把信帶給加西亞。”事實勝于雄辯:
                    1.“請將個人當(dāng)日計劃傳遞至管理秘書處。”的通知上個星期就在白板了,到了今天仍然有很多人無動于衷,小徐只能在通知的后面加“!”號。
                    2.3月21日到廣州參觀國際展覽原定早上7:30起程,但最后是8:30才動身。還是像上次去中山春游一樣,要打電話催,要到宿舍去拉,才能將部分人集合。
          這樣的小事都做不好,業(yè)務(wù)上的事情更不用說了。我們的工作好像接力跑,很多人在接到棒后還未跑到接力點就把棒扔掉了,甚至有些人接到棒后根本就沒有跑。所以我們公司的管理層總要疲于奔命地為下屬留下的手尾“擦屁股”。
                    形成良好的的職業(yè)素質(zhì),不論你在哪一間公司工作,你都是最受歡迎的的!


          BeanSoft 2007-10-14 10:26 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/14/152683.html

          posted @ 2007-10-14 10:26 J2EE UP UP 閱讀(137) | 評論 (0)編輯 收藏

          <input type="button" onclick="ajaxTest()" value="AJAX測試">
          
          <input type="button" onclick=" document.getElementById('weather').innerHTML='' " value="隱藏">
          
          <script>
          // 1. 初始化 請求 對象
          // Mozilla/Firefox 下的
          var xmlhttp = new XMLHttpRequest();
          // IE 下的
          //var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
          //alert(xmlhttp);
          
          function ajaxTest() {
              // 指定要打開的頁面
              xmlhttp.open("GET", "staticpage.html", true);// HTTP 請求的方式, URL, 是否異步
              // 指定頁面打開完之后要進(jìn)行的操作.
              xmlhttp.onreadystatechange = mychange;
              // 開始發(fā)起瀏覽請求, Mozilla 必須加 null
              xmlhttp.send(null);
          }
          
          // 這個函數(shù)就是每次狀態(tài)改變要調(diào)用的函數(shù)
          function mychange() {
              // 請求已完成
              if(xmlhttp.readyState == 4) {
                  //alert(xmlhttp.readyState);
                  alert(xmlhttp.responseText);
                  // 更新對應(yīng)的 HTML 元素里面顯示的內(nèi)容
              // 根據(jù) ID 引用頁面里面的元素 document.getElementById(元素名)
              document.getElementById('weather').innerHTML = xmlhttp.responseText;
              }
          }
          </script>
          
          <div id="weather"></div>


          BeanSoft 2007-10-12 13:19 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/12/152318.html

          posted @ 2007-10-12 13:19 J2EE UP UP 閱讀(120) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共4頁: 上一頁 1 2 3 4 下一頁 
          主站蜘蛛池模板: 德保县| 泾源县| 武强县| 怀化市| 恩施市| 抚远县| 肃北| 黄浦区| 永嘉县| 连平县| 运城市| 百色市| 和政县| 溧阳市| 余江县| 大埔县| 文昌市| 天柱县| 临沧市| 武功县| 木里| 石嘴山市| 霸州市| 玛纳斯县| 灵丘县| 中阳县| 定结县| 三明市| 曲沃县| 和平县| 黑龙江省| 读书| 会同县| 新晃| 云浮市| 新平| 漠河县| 安化县| 清涧县| 兰坪| 吉林市|