javafever


          我無(wú)富貴命,所喜性天然。壁立三千字,家無(wú)半吊錢(qián)。蟬鳴深巷里,人語(yǔ)短屋前。收拾英雄氣,耕作兩分田。

          #

          古琴

          一直以為,古琴已經(jīng)不是一種樂(lè)器。

          對(duì)古琴的仰慕,持續(xù)了十多年,并且至今是有增無(wú)減。古琴帶給我的震撼,不是從聲波對(duì)我的耳膜的刺激中來(lái)的。從初識(shí)古琴時(shí)聽(tīng)到的“陽(yáng)關(guān)三疊”,到后來(lái)百聽(tīng)不厭的“梅花三弄”,以致如今略有所悟得“瀟湘水云”,我一直在很用心的體會(huì)這個(gè)獨(dú)特樂(lè)器所帶來(lái)的意境。如果說(shuō)開(kāi)始聽(tīng)琴時(shí)還有些附庸風(fēng)雅,那現(xiàn)在我已經(jīng)是真正體會(huì)到古琴的妙處了。

          初識(shí)妻時(shí),給她聽(tīng)了很多古琴的曲子。妻是文人,那時(shí)對(duì)古琴仰慕的一塌糊涂。后來(lái),有一次,樂(lè)器店的老板進(jìn)了一具古琴,我便帶她一同去聽(tīng),結(jié)果,我和她的感受截然相反。

          古琴悅己,古箏悅?cè)耍蚁耄压徘賰H僅當(dāng)作一種樂(lè)器的人是彈不好古琴的。

          古琴是一種“道器”、“德器”,以致我見(jiàn)到古琴時(shí),真的怕自己一輩子都沒(méi)有機(jī)會(huì)有資格擁有它。

          posted @ 2005-08-14 21:03 javaFever 閱讀(414) | 評(píng)論 (0)編輯 收藏

          步韻一位朋友的詞

          點(diǎn)絳唇

          幾片扁舟,幾番天色又飄淼。幾人同道,幾許聽(tīng)秋草。
          月色蒼茫,攜琴欲遠(yuǎn)眺。知音少,也是玩笑,莫惹些煩惱。

          原詞如下:

          點(diǎn)絳唇.憶

          一樹(shù)丹楓,一江秋水波微淼。一條長(zhǎng)道,一橋連灘草。
          黯淡斜暉,無(wú)語(yǔ)西樓眺。思年少,盡情歡笑,哪有些煩惱。

          posted @ 2005-08-13 22:24 javaFever 閱讀(362) | 評(píng)論 (0)編輯 收藏

          ExadelStudio2.5插件使用(三)

          {創(chuàng)建ManagedBean}
          在Exadel下創(chuàng)建一個(gè)Managed Bean的方法十分簡(jiǎn)單。首先,在包資源管理器下面定位到/WebContent/WEB-INF/faces-config.xml文件,雙擊打開(kāi)它。默認(rèn)情況下是用源碼方式打開(kāi),可以通過(guò)窗口下部的“Tree”標(biāo)簽以樹(shù)狀圖形方法打開(kāi)它,定位到“Managed Bean”,點(diǎn)擊右鍵,選擇“New->Managed Bean...”,如下圖:

          Image00000.jpg

          這時(shí)Exadel會(huì)打開(kāi)一個(gè)對(duì)話框要求你輸入這個(gè)Managed Bean的存活期、類(lèi)名稱(chēng)和名稱(chēng)等屬性,注意,
          1、請(qǐng)選中“Generate Source Code”選項(xiàng),Exadel會(huì)為你產(chǎn)生類(lèi)的代碼。
          2、類(lèi)名稱(chēng)應(yīng)該是全名,即名括包的名稱(chēng)。

          Image00003.jpg

          單擊“Finish”按鈕后,可以在包資源管理器里找到這個(gè)Managed Bean的源碼文件。

          Image00004.jpg

          Managed Bean 和普通的JavaBean沒(méi)有任何區(qū)別,TableTest類(lèi)只有一個(gè)屬性——data,它返回表Authors中的所有記錄,源碼如下(注意使用了前面配置的數(shù)據(jù)源):
          /*
           * TableTest.java
           * javafever @ 2005-8-9
           
          */

          package jtest;

          import java.sql.Connection;
          import java.sql.ResultSet;
          import java.sql.SQLException;
          import java.sql.Statement;

          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.naming.NamingException;
          import javax.servlet.jsp.jstl.sql.Result;
          import javax.servlet.jsp.jstl.sql.ResultSupport;
          import javax.sql.DataSource;


          public class TableTest {
              
              
          private Connection con = null
          ;
              
          private Result data = null
          ;
              
              
          public void setData(Result data) 
          {
                  
          this.data =
           data;
              }

              
              
          public void connect() throws SQLException, NamingException {
                  
          if (con != nullreturn
          ;
                  Context ctx 
          = new
           InitialContext();
                  DataSource ds 
          = (DataSource) ctx.lookup("java:comp/env/jdbc/jtest"
          );
                  con 
          =
           ds.getConnection();
              }

              
              
          public void disconnect() throws SQLException {
                  
          if (con != null
          {
                      con.close();
                      con 
          = null
          ;
                  }

              }

              
              
          public Result getData() throws SQLException, NamingException {
                  
          try 
          {
                      connect();
                      Statement stmt 
          =
           con.createStatement();
                      ResultSet rs 
          = stmt.executeQuery("select * from authors"
          );
                      
          return
           ResultSupport.toResult(rs);
                  }

                  
          finally {
                      disconnect();
                  }

                  
              }

              
              
          public TableTest() {
              }

          }


          再次打開(kāi)faces-config.xml文件,使用“Tree”方式編輯,選中“Managed Bean -> table”,在右邊的“Preperties”編輯區(qū)里增加一個(gè)屬性,增加屬性的對(duì)話框如下。注意,Value Kind選擇“null-value”。

          Image00010.jpg

          {建立JSP頁(yè)面}
          接下來(lái)創(chuàng)建頁(yè)面來(lái)顯示這個(gè)表格。(如果按照上一節(jié)創(chuàng)建了/WebContent/index.jsp文件,請(qǐng)先刪除它。)在資源管理器的“/WebContent”節(jié)點(diǎn)上選擇建立JSP文件,對(duì)話框如下,注意,Template選擇“JSFBasePage”會(huì)生成一些默認(rèn)的代碼,方便你書(shū)寫(xiě)JSP程序。

          Image00005.jpg

          創(chuàng)建的代碼如下:

          Image00007.jpg

          如果你不是使用的“Exadel Studio”透視圖,現(xiàn)在請(qǐng)使用它,并打開(kāi)“Exadel Palette”視圖。“Exadel Studio”視圖如下,它提供了一些JSF組件的圖標(biāo)。單擊這些圖標(biāo)可以在Jsp編輯器里快速的生成JSF代碼。

          Image00006.jpg

          比如,點(diǎn)擊“dataTable”,生成的代碼如下:

          Image00008.jpg

          最終的代碼:

          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

          <html>
              
          <head>
                  
          <title></title>
              
          </head>
              
          <body>
                  
          <f:view>
                      
          <h:dataTable value="#{table.data}" var="data">
                          
          <h:column>
                              
          <f:facet name="header">
                                  
          <h:outputText value="First Name"/>
                              
          </f:facet>
                              
          <h:outputText value="#{data.au_fname}"/>
                          
          </h:column>
                          
          <h:column>
                              
          <f:facet name="header">
                                  
          <h:outputText value="Last Name"/>
                              
          </f:facet>
                              
          <h:outputText value="#{data.au_lname}"/>
                          
          </h:column>
                          
          <h:column>
                              
          <f:facet name="header">
                                  
          <h:outputText value="Phone"/>
                              
          </f:facet>
                              
          <h:outputText value="#{data.phone}"/>
                          
          </h:column>
                          
          <h:column>
                              
          <f:facet name="header">
                                  
          <h:outputText value="Address"/>
                              
          </f:facet>
                              
          <h:outputText value="#{data.address}"/>
                          
          </h:column>
                      
          </h:dataTable>
                  
          </f:view>
              
          </body>    
          </html>
            

          {運(yùn)行}
          最后,運(yùn)行/ant/build.xml。啟動(dòng)Tomcat,訪問(wèn)http://localhost:8888/jtest/index.jsf,結(jié)果如下:

          Image00011.jpg

          Exadel提供一個(gè)Web Browser,通過(guò)下面的方式使用。

          Image00012.jpg

          Image00009.jpg



          posted @ 2005-08-10 21:03 javaFever 閱讀(755) | 評(píng)論 (0)編輯 收藏

          氣憤

          今天公司組織職工進(jìn)行體檢,在30所職工醫(yī)院。結(jié)束后才發(fā)現(xiàn),醫(yī)院抽血好象不是用的一次性針頭,大懼!以后再也不到職工醫(yī)院看病了。

          老婆今天回家了,衣來(lái)伸手飯來(lái)張口的幸福生活就此結(jié)束,今天開(kāi)始又是吃伙食團(tuán),幸好我上次檢查已經(jīng)有了乙肝抗體,呵呵。

          posted @ 2005-08-09 20:58 javaFever 閱讀(262) | 評(píng)論 (0)編輯 收藏

          ExadelStudio2.5插件使用(二)

          {建立應(yīng)用jtest}
          建立一個(gè)名為jtest的Exadel JSF Project,模板選用JSFBlank。

          {配置Tomcat數(shù)據(jù)源}
          我使用的是Tomcat5.5.10,數(shù)據(jù)庫(kù)是SQLServer2000_SP3(好象都是比較新的版本,難怪有人說(shuō)我喜新厭舊)。
          我的Web應(yīng)用程序名叫jtest,所以我修改{TOMCAT_HOME}/conf/Catalina/localhost/jtest.xml文件,在里面增加數(shù)據(jù)源配置。文件內(nèi)容如下:

          <Context docBase="E:/java/jtest/WebContent"
            path
          ="/jtest"
            reloadable
          ="true">
           
          <Resource name="jdbc/jtest"
             type
          ="javax.sql.DataSource"
             password
          ="1"
             driverClassName
          ="com.microsoft.jdbc.sqlserver.SQLServerDriver"
             maxIdle
          ="2"
             maxWait
          ="5000"
             username
          ="sa"
             url
          ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"
             maxActive
          ="4"/>
          </Context>

          在包資源管理器中找到WebContent/WEB-INF/web.xml,打開(kāi),安裝Exadel后會(huì)自動(dòng)使用Exadel的XML編輯器打開(kāi)XML文檔,如果是web.xml和faces-config.xml,還會(huì)有相應(yīng)的圖形化工具。使用圖形化工具來(lái)管理很方便,大大提高了開(kāi)發(fā)效率。由于這個(gè)web.xml比較簡(jiǎn)單,所以我直接編寫(xiě)源文件,最終的文件內(nèi)容如下:

          <?xml version="1.0"?> 
          <web-app version="2.4"
           
          xmlns
          ="http://java.sun.com/xml/ns/j2ee"
           
          xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
           
          xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
           

              
          <context-param>

                  
          <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
                  
          <param-value>server</param-value>
              
          </context-param>

              
          <context-param>
                  
          <param-name>javax.faces.CONFIG_FILES</param-name>
                  
          <param-value>/WEB-INF/faces-config.xml</param-value>
              
          </context-param>

              
          <listener>
                  
          <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
              
          </listener>

              
          <!-- Faces Servlet -->
              
          <servlet>
                  
          <servlet-name>Faces Servlet</servlet-name>
                  
          <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
                  
          <load-on-startup> 1 </load-on-startup>
              
          </servlet>


              
          <!-- Faces Servlet Mapping -->
              
          <servlet-mapping>
                  
          <servlet-name>Faces Servlet</servlet-name>
                  
          <url-pattern>*.jsf</url-pattern>
              
          </servlet-mapping>
              
              
          <resource-ref>
               
          <description>DataSource</description>
               
          <res-ref-name>jdbc/jtest</res-ref-name>
               
          <res-type>javax.sql.DataSource</res-type>
               
          <res-auth>Container</res-auth>
              
          </resource-ref>
              
          </web-app>

          除了<resource-ref>標(biāo)簽里定義數(shù)據(jù)源是我自己手動(dòng)增加的內(nèi)容以外,其它都是Exadel自動(dòng)產(chǎn)生的,真是很方便。
          在配置的過(guò)程中遇到點(diǎn)小麻煩:我的OS是Windows2003,JDBC是微軟官方的,開(kāi)始SQLServer2000沒(méi)有打SP3,怎么也配不成功,結(jié)果一打SP3就行了,浪費(fèi)了不少光陰。

          {測(cè)試數(shù)據(jù)源}
          最后,寫(xiě)一個(gè)index.jsp文件來(lái)測(cè)試數(shù)據(jù)源有沒(méi)有工作,文件內(nèi)容如下:

           1<%@ page language="java" %>
           2<html>
           3<head>
           4<title>jtest</title>
           5</head>
           6<body>
           7<h2>Result</h2>
           8
           9<%

          10javax.naming.Context ctx = new javax.naming.InitialContext();
          11javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:/comp/env/jdbc/jtest"
          );
          12java.sql.Connection con =
           ds.getConnection();
          13java.sql.Statement stmt =
           con.createStatement();
          14java.sql.ResultSet rs = stmt.executeQuery("select count(*) as c from authors"
          );
          15if (rs.next()) out.println("count is:" + rs.getInt("c"
          ));
          16
          rs.close();
          17
          stmt.close();
          18
          con.close();
          19%>

          20


          將文件存放在/WebContent/目錄下,然后運(yùn)行/ant/build.xml,最后啟動(dòng)Tomcat,如果能看到結(jié)果,表示配置一切OK。

          posted @ 2005-08-09 20:21 javaFever 閱讀(735) | 評(píng)論 (1)編輯 收藏

          ExadelStudio2.5 插件的使用(一)

          最近一個(gè)月,一直在用Exadel做JSF的練習(xí),發(fā)現(xiàn)它的確是一個(gè)非常好的Eclipse插件,尤其是對(duì)編寫(xiě)JSP頁(yè)面,幾乎沒(méi)有其它工具比它更好用。

          {安裝}
          安裝就不說(shuō)了,從Exadel的網(wǎng)站上下載,運(yùn)行Exe或者Jar文件即可。

          {配置Exadel}
          在“首選項(xiàng)”->“Exadel”->“Running”的“Tomcat”選項(xiàng)卡中配置好Tomcat的路徑。ExadelStudio2.5支持Tomcat、JBoss、JRun和J2EESDK。不過(guò),ExadelStudioPro3.0就支持幾乎所有的應(yīng)用服務(wù)器了。
          在“首選項(xiàng)”->“Exadel”->“JSF”->“Project”選項(xiàng)卡中可以配置你使用的JSF的版本、Servlet的版本以及你的JSF項(xiàng)目模板。還有一個(gè)選項(xiàng)是在Tomcat的Server.xml文件中注冊(cè)你的Web上下文。不過(guò)由于Tomcat5.0以后可以使用獨(dú)立的上下文配置文件,所以我一般不喜歡使用這個(gè)選項(xiàng)。

          {新建一個(gè)JSF項(xiàng)目}
          在剛才的配置中,JSF項(xiàng)目模板有兩個(gè)選項(xiàng),一個(gè)的“JSFBlank”,另一個(gè)是“JSFKickStart”。JSFBlank將建立一個(gè)空白的JSF項(xiàng)目,Exadel會(huì)自動(dòng)在你的項(xiàng)目路徑中產(chǎn)生你需要的文檔。
          首先,它會(huì)把需要的JSF庫(kù)放到應(yīng)用的/WEB-INF/lib目錄下,在項(xiàng)目中的路徑為/WebContent/WEB-INF/lib。
          第二,它會(huì)自動(dòng)設(shè)置好項(xiàng)目的構(gòu)建路徑,讓Eclipse能輕松地使用JSF庫(kù)。
          第三,它會(huì)自動(dòng)產(chǎn)生幾個(gè)重要的文檔:Web.xml、faces-config.xml和build.xml。其中web.xml和faces-config.xml放在/WebContent/WEB-INF/下面,而build.xml放在/ant目錄下面。
          注意,如果你需要對(duì)你的ManagedBean進(jìn)行的調(diào)試的話,請(qǐng)記住將build.xml的compiler任務(wù)中javac的debug屬性設(shè)為“on”。
          Exadel還會(huì)產(chǎn)生一個(gè)JavaSource目錄,所有ManagedBean的源碼都應(yīng)該存放在這里。還有build和deploy目錄是ant用來(lái)執(zhí)行編譯和部署的。deploy里是最終的部署路徑,當(dāng)然,你要是不喜歡的話,盡管在build.xml里把它換成其它的。

          如果想一句代碼都不寫(xiě)就體會(huì)一下JSF的概貌的話,可以將Exadel的JSF項(xiàng)目模板設(shè)置為“JSFKickStart”,這時(shí)Exadel會(huì)為你產(chǎn)生一個(gè)比空白JSF項(xiàng)目稍稍多一點(diǎn)功能的項(xiàng)目模板,它有一個(gè)歡迎頁(yè)面和一個(gè)ManagedBean。雖然沒(méi)有多大用處,但可以很清晰地看到JSF項(xiàng)目的書(shū)寫(xiě)方法。

          posted @ 2005-08-08 21:04 javaFever 閱讀(808) | 評(píng)論 (0)編輯 收藏

          郁悶的一天

          到S公司兩個(gè)月了,這兩天,公司搞了個(gè)令我郁悶的新員工培訓(xùn)。

          說(shuō)郁悶,有幾個(gè)原因。當(dāng)然,最重要的原因是要和那一大堆剛從大學(xué)里分配來(lái)的小孩子們坐在一起,聽(tīng)年紀(jì)比我還小的什么經(jīng)理呀之類(lèi)的講些膚淺的技術(shù)。第二,我們公司的副總工,就是我們部門(mén)的老大,給我們講軟件開(kāi)發(fā)技術(shù)時(shí),帶有強(qiáng)烈的個(gè)人主觀色彩,把Java,尤其是EJB批得一無(wú)是處,把WebService奉為放之四海皆準(zhǔn)的真理,而且以前也發(fā)現(xiàn)他有把自己的主觀意見(jiàn)強(qiáng)加給下屬的趨向,郁悶。

          不過(guò)也有好處,總算輕松了兩天,沒(méi)干什么活。

          ExadelStudioPro3.0到期了,沒(méi)辦法,只好用免費(fèi)的ExadelStudio2.5,不過(guò),對(duì)我來(lái)說(shuō),主要用它做JSF,倒是夠用了,唯一不爽的就是要換回成Eclipse3.0。

          SQLServer的JDBC驅(qū)動(dòng)在SQLExplorer和Exadel的Database Explorer里老有問(wèn)題,不知道怎么回事,JDBC本身應(yīng)該沒(méi)有問(wèn)題,在Tomcat配連接池的情況下也跑得上好的。

          posted @ 2005-08-06 00:06 javaFever 閱讀(172) | 評(píng)論 (0)編輯 收藏

          記住為javac作業(yè)添加debug="on"

          前段時(shí)間在做一個(gè)JSF練習(xí)時(shí),總是不能對(duì)類(lèi)文件進(jìn)行跟蹤調(diào)試,Eclipse彈出“cannot install breakpoint”錯(cuò)誤對(duì)話框。依照該錯(cuò)誤對(duì)話框的提示,將項(xiàng)目的complier設(shè)為使用workspace的,并且在workspace的java->complier選項(xiàng)中選中“add line number attribute to generate class files”,仍然不能解決問(wèn)題。結(jié)果今天才發(fā)現(xiàn),原來(lái),項(xiàng)目的build.xml文件中,javac沒(méi)有使用debug="on",翻看ant的文檔,原來(lái)javac默認(rèn)debug="false"。

          posted @ 2005-08-03 20:48 javaFever 閱讀(888) | 評(píng)論 (0)編輯 收藏

          南鄉(xiāng)子(霜重暮江寒)

          南鄉(xiāng)子

          霜重暮江寒
          一葉扁舟影自單
          漸行漸遠(yuǎn)漸無(wú)意
          催眠
          收拾心事向管弦

          何必理衣冠
          老子偏愛(ài)獨(dú)倚欄
          懶問(wèn)世間沉浮事
          何盼
          記取蓑翁釣魚(yú)桿

          這是1999年步韻一位網(wǎng)友的詞,不過(guò)原詞和當(dāng)時(shí)和的詞已經(jīng)記不清了,只能依稀記得兩句。很久沒(méi)有寫(xiě)詞了,故依原詞意,重作此詞。

          posted @ 2005-08-03 13:03 javaFever 閱讀(283) | 評(píng)論 (0)編輯 收藏

          搬家

          受不了CSDN不停地出問(wèn)題,搬到這里落戶(hù)來(lái)了,希望能讓我堅(jiān)持寫(xiě)B(tài)log。

          posted @ 2005-08-02 22:34 javaFever 閱讀(207) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共5頁(yè): 上一頁(yè) 1 2 3 4 5 下一頁(yè) 
          主站蜘蛛池模板: 璧山县| 东城区| 沙洋县| 古浪县| 阳曲县| 威远县| 双辽市| 荥经县| 阜平县| 镇安县| 瓮安县| 出国| 加查县| 北辰区| 沈丘县| 安龙县| 达尔| 正定县| 上蔡县| 望奎县| 广州市| 绍兴县| 牡丹江市| 和顺县| 兴山县| 徐闻县| 界首市| 澎湖县| 凌云县| 泾源县| 磴口县| 武强县| 建始县| 塘沽区| 赣榆县| 漯河市| 荥经县| 沐川县| 内黄县| 扎囊县| 巴南区|