javafever


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

          2005年8月9日 #

          OpenGL學(xué)習(xí)筆記(二)

          關(guān)于MinGW中的glut庫(kù)

          Mark Kilgard提供的glut庫(kù)解壓后包含一個(gè).h,一個(gè).def,一個(gè).lib和一個(gè).dll文件。將.h拷貝到MinGW的include目錄下,.dll拷貝到windows的系統(tǒng)目錄下(windows\system32),.def和.lib文件在eclipse下面不太好使,可以使用reimp工具將.lib文件轉(zhuǎn)換成.a文件。命令如下:
          reimp?glut32.lib

          這樣,就會(huì)在同一目錄下生成一個(gè)glut32.def和一個(gè)libglut32.a文件,將libglut32.a拷貝到MinGW的lib目錄下。同時(shí)記得要?jiǎng)h除原來(lái)的glut庫(kù),否則link時(shí)可能會(huì)出錯(cuò)。

          glut主程序框架


          #include <GL/glut.h> //頭文件。

          int main(int argc, char** argv) {
          ??? //初始化glut并建立窗口
          ??? glutInit(&argc, argv);
          ??? glutInitDisplayMode(GLUT_DEPTH | GLUT_SIGNLE | GLUT_RGB);
          ??? glutInitWindowPosition(100, 100);
          ??? glutInitWindowSize(200, 200);
          ??? glutCreateWindow(windowTitle);
          ???
          ??? //注冊(cè)glut的callback函數(shù)
          ??? glutDisplayFunc(display);
          ??? glutReshapeFunc(reshape);
          ??? glutIdleFunc(idle);
          ??? glutKeyboardFunc(keyboard);
          ???
          ??? //啟用光線、深度測(cè)試等
          ??? glEnable(GL_LIGHT0);
          ??? glEnable(GL_LIGHTING);
          ??? glEnable(GL_DEPTH_TEST);

          ??? //進(jìn)入glut主循環(huán)
          ??? glutMainLoop();

          ??? return 0;
          }

          posted @ 2006-12-17 23:06 javaFever 閱讀(397) | 評(píng)論 (0)編輯 收藏

          OpenGL學(xué)習(xí)筆記(一)

          安裝開發(fā)平臺(tái)

          為了保持開發(fā)平臺(tái)的一致性,采用GCC+eclipse作為開發(fā)平臺(tái)。

          在Debian Linux下安裝GCC和make就可以了。安裝了X環(huán)境后,系統(tǒng)中就已經(jīng)包含了OpenGL的頭文件和庫(kù)文件,但是要使用GLUT的話,還需要安裝GLUT的包。我使用的是freeglut3。

          $sudo ?apt - get?install?gcc?make?freeglut3 - dev

          在Windows下,GCC的解決方案有很多,我使用的是MinGW,可以下載DevCpp,它包括MinGW和一個(gè)C/C++的IDE,因?yàn)槲沂褂胑clipse作為IDE,所以,我使用MinGW的官方開發(fā)工具。到MinGW的官方網(wǎng)站上下載以下包:

          binutils

          gcc-core

          gcc-g++

          mingw32-make

          mingw-runtime

          mingw-utils

          w32api

          最后再下載調(diào)試器gdb。

          為了能使用Mark Kilgard提供的glut庫(kù)(http://www.xmission.com/~nate/glut.html),盡量下載最新的官方版本,該glut庫(kù)要求binutils版本至少是2.16.91。

          http://www.mingw.org/MinGWiki/index.php/Glut頁(yè)面解釋了在MinGW下使用Mark Kilgard的GLUT庫(kù)會(huì)出現(xiàn)的問(wèn)題及解決的辦法。

          至于Eclipse和CDT的安裝很簡(jiǎn)單,在Linux下和Windows下也沒(méi)什么區(qū)別。需要注意的是:為了讓Eclipse能是別到GCC,需要吧GCC的bin目錄加入系統(tǒng)路徑PATH中,eclipse會(huì)自動(dòng)查找make.exe,而MinGW的Make程序名叫mingw32-make.exe,所以,要么把mingw32-make.exe更名為make.exe,要么指定eclipse使用mingw32-make.exe進(jìn)行make。

          posted @ 2006-12-16 14:39 javaFever 閱讀(713) | 評(píng)論 (1)編輯 收藏

          解決debian更新安裝源失敗后造成的包依賴問(wèn)題

          最近發(fā)現(xiàn)國(guó)內(nèi)的debian安裝源服務(wù)器很不穩(wěn)定,想換一個(gè)速度快的,結(jié)果apt-get update運(yùn)行失敗后,把安裝源換回來(lái)再重新安裝其他包時(shí)都會(huì)報(bào)包依賴錯(cuò),apt-get update好像起不了作用。研究后發(fā)現(xiàn),刪除/var/cache/apt/下的兩個(gè)bin文件,再apt-get update就可以了。

          posted @ 2006-12-13 19:07 javaFever 閱讀(1026) | 評(píng)論 (0)編輯 收藏

          debian etch中java顯示中文

          知道java5.0中中文顯示的解決辦法是在jre/lib/fonts/目錄下建立一個(gè)fallback目錄,然后把中文字體連接進(jìn)去就可以了,但我找樂(lè)半天都沒(méi)找到這個(gè)目錄,最后發(fā)現(xiàn)用update-alternative --config java指令便可以得到這個(gè)目錄的信息。

          posted @ 2006-11-28 22:31 javaFever 閱讀(358) | 評(píng)論 (0)編輯 收藏

          qemu在linux和windows下tap網(wǎng)絡(luò)的配置方法

          要讓qemu虛擬機(jī)和宿主機(jī)位于同一個(gè)網(wǎng)絡(luò)中被該網(wǎng)絡(luò)的其他機(jī)器訪問(wèn),就需要使用TUN/TAP的網(wǎng)絡(luò)方式來(lái)啟動(dòng)qemu虛擬機(jī)。具體的啟動(dòng)指令是:
          qemu -m 192 -hda disk.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup
          如果是在WindowsXP下面,就不需要script=/etc/qemu-ifup這個(gè)啟動(dòng)腳本了,直接將tap0換成網(wǎng)橋的名字即可。

          第一步,建立一個(gè)虛擬網(wǎng)絡(luò)接口。
          在linux下:
          1?#?mknod?/dev/net/tun?c?10?200

          在Windows下,有開源的虛擬網(wǎng)卡軟件,找一個(gè)來(lái)裝好就行了。

          第二步,建立網(wǎng)橋。
          在linux下:
          修改/etc/network/interface配置文件。此處建立一個(gè)名為br0的網(wǎng)橋,先橋接上eth0,在啟動(dòng)qemu時(shí),再橋接上tap0。
          ?1?#?/etc/network/interface
          ?2?#?This?file?describes?the?network?interfaces?available?on?your?system
          ?3?#?and?how?to?activate?them.?For?more?information,?see?interfaces(5).
          ?4?
          ?5?#?The?loopback?network?interface
          ?6?auto?lo
          ?7?iface?lo?inet?loopback
          ?8?
          ?9?#?The?bridge?network?interface(s)
          10?auto?br0
          11?iface?br0?inet?static
          12?address?192.168.1.2
          13?network?192.168.1.0
          14?netmask?255.255.255.0
          15?broadcast?192.168.1.255
          16?gateway?192.168.1.1
          17?bridge_ports?eth0
          18?bridge_fd?9
          19?bridge_hello?2
          20?bridge_maxage?12
          21?bridge_stp?off

          在windowsXP下,在網(wǎng)絡(luò)屬性窗口中,直接將要橋接的兩塊網(wǎng)卡選中,然后點(diǎn)擊鼠標(biāo)右鍵,選擇“橋”菜單即完成橋接。

          第三步,建立qemu-ifup腳本啟動(dòng)qemu時(shí)調(diào)用。
          在linux下:
          建立/etc/qemu-ifup腳本文件(參見(jiàn)qemu指令的-net參數(shù))
          1?#!/bin/sh
          2?
          3?sudo?/sbin/ifconfig?$1?0.0.0.0?promisc?up
          4?sudo?/usr/sbin/brctl?addif?br0?$1
          5?sleep?2
          WindowsXP在下不用這個(gè)腳本,直接把-net的ifname參數(shù)設(shè)為網(wǎng)橋的名字即可。

          posted @ 2006-11-20 23:54 javaFever 閱讀(8254) | 評(píng)論 (2)編輯 收藏

          Debian+XFCE4+JDK5+Netbeans5.5安裝完成

          趁這兩天有點(diǎn)空,終于把本本重裝了。
          一切都還順利,只有在安裝Netbeans時(shí)需要注意必須先安裝bc包才能安裝Netbeans。

          posted @ 2006-11-18 12:12 javaFever 閱讀(387) | 評(píng)論 (0)編輯 收藏

          都江堰腐敗歸來(lái)

          周末和幾個(gè)驢友去了趟都江堰,從東光小區(qū)出發(fā)到達(dá)目的地共80公里,行駛時(shí)間4小時(shí),感覺(jué)不錯(cuò),美得達(dá)的車就是好。

          posted @ 2006-06-04 22:37 javaFever 閱讀(283) | 評(píng)論 (0)編輯 收藏

          不可以只看外表。

          好幾天來(lái)有個(gè)問(wèn)題一個(gè)困惑著我。

          在Eclipse里使用WTP插件時(shí),總是不能正確的增加一個(gè)Server。當(dāng)點(diǎn)擊“WTP Server Actions”工具圖標(biāo)時(shí),Eclipse響應(yīng)速度極慢,并且,整個(gè)WTP相關(guān)的圖標(biāo)都會(huì)從工具欄上消失掉。

          開始我以為這個(gè)問(wèn)題是由于各個(gè)插件使用的WTP版本不一致造成的。由于我主要是想使用Exadel Studio 3.5,所以,我按照Exadel網(wǎng)站上的方法,去掉了其它插件的WTP(主要是JBossIDE和WTP本身),仍然不能解決該問(wèn)題,于是我準(zhǔn)備將錯(cuò)誤信息發(fā)送給Exadel。

          令我吃驚的是,當(dāng)我使用-debug參數(shù)啟動(dòng)Eclipse時(shí),一切都正常!我能通過(guò)WTP Server Actions圖標(biāo)創(chuàng)建Web服務(wù)器,也能通過(guò)其它WTP圖標(biāo)啟動(dòng)、停止和部署應(yīng)用。當(dāng)我去掉-debug參數(shù)時(shí),問(wèn)題又回來(lái)了!看上去非常的不可思議。當(dāng)我仔細(xì)觀察使用與不使用-debug參數(shù)時(shí)Eclipse的區(qū)別時(shí),終于發(fā)現(xiàn)當(dāng)使用-debug參數(shù)時(shí),Eclipse沒(méi)有使用Windows主題!難道會(huì)與這個(gè)相關(guān)?看上去風(fēng)馬牛不相及,不過(guò)我還是準(zhǔn)備試一下。我把%JAVA_HOME%\bin下的javaw.exe.manifest文件刪掉,重新啟動(dòng),一切OK了!

          不可思議!于此我得出的結(jié)論是:不能只看重外表!

          posted @ 2006-04-27 11:19 javaFever 閱讀(295) | 評(píng)論 (1)編輯 收藏

          VMWare 與 qemu 速度比較

          剛剛在我的Debian Testing下面比較了一下VMware與qemu安裝Windows2000Professional的速度。

          我的機(jī)器配置是Compaq Presario2500,512M內(nèi)存,其中32M劃給顯存。P4 2.4G,ATI340顯卡。Linux內(nèi)核版本為2.6.12-1-386。

          為了保持可比性,我的虛擬機(jī)都使用256M內(nèi)存,4G硬盤,NAT方式接入網(wǎng)絡(luò)。

          先 在qemu7.0(沒(méi)有使用kqemu加速器)下安裝,使用的是雨薇在線提供的無(wú)值守安裝方式(安裝完成后會(huì)打上一些系統(tǒng)補(bǔ)丁),整個(gè)過(guò)程(開始安裝到出 現(xiàn)Windows開始菜單)耗時(shí)1小時(shí)48分鐘。然后在VMWare5.0下安裝,第一次安裝到檢測(cè)設(shè)備時(shí)死機(jī),然后改成使用Bridge方式,整個(gè)安裝 耗時(shí)28分鐘,性能真的是不可相提并論啊。

          在一些輔助功能上,VMWare好象也明顯好用得多,比如,VMWare下能使用我的視頻頭等USB設(shè)備,而qemu我還不知道怎么掛上USB設(shè)備。對(duì)顯 卡的模擬VMWare更是沒(méi)話說(shuō),最關(guān)鍵的時(shí)全屏?xí)r由于支持“自動(dòng)匹配客戶機(jī)”,所以在我的液晶下就不會(huì)出現(xiàn)花屏,qemu好象沒(méi)辦法。

          看來(lái)自由軟件要走的路還很長(zhǎng)。

          posted @ 2006-01-01 11:49 javaFever 閱讀(5793) | 評(píng)論 (4)編輯 收藏

          2006年打算

          1、工作環(huán)境全面轉(zhuǎn)向Linux。
          2、深入學(xué)習(xí)設(shè)計(jì)模式。
          3、深入學(xué)習(xí)Hibernate,并用它做一個(gè)實(shí)際的項(xiàng)目。
          4、深入學(xué)習(xí)JSF,并用它做一個(gè)實(shí)際的項(xiàng)目。
          5、復(fù)習(xí)C++,尤其是對(duì)泛型加強(qiáng)了解,并與Java泛型對(duì)照學(xué)習(xí)。
          6、嚴(yán)格遵守格律寫詩(shī),盡量使用平水韻。
          7、能流暢的演奏阿宮回憶。

          posted @ 2006-01-01 09:56 javaFever 閱讀(265) | 評(píng)論 (0)編輯 收藏

          出差回來(lái)了

          平安夜,我生日的前一天,從長(zhǎng)沙回到成都,走進(jìn)住所,面對(duì)空蕩蕩的房間,感覺(jué)就象從一個(gè)客棧到了另一個(gè)客棧。

          posted @ 2005-12-24 21:42 javaFever 閱讀(143) | 評(píng)論 (0)編輯 收藏

          Debian Testing(Etch) 還不太穩(wěn)定

          最近在幾個(gè)Debian版本間(Sarge、Etch、SID和Ubuntu5.10)做了些試驗(yàn),感覺(jué)Testing還是不太穩(wěn)定,尤其是GNOME的任務(wù)條老是容易死掉,非常郁悶!不過(guò)我還是打算用這個(gè)版本,只要C++和Java的開發(fā)平臺(tái)能夠穩(wěn)定下來(lái)就沒(méi)什麼,至於X窗口,還是用XFCE吧。

          Ubuntu的確是個(gè)不錯(cuò)的Linux發(fā)行版,感覺(jué)應(yīng)該比RedHat更有前途(其實(shí)對(duì)它的偏好是因?yàn)槠浠禗ebian,愛(ài)屋及烏了吧)。以前安裝Ubuntu時(shí),不知道可以使用server參數(shù)來(lái)只安裝最基本的包。不過(guò)Ubuntu到是很穩(wěn)定,至少不象tesing和sid那樣容易死掉。

          有空的話,準(zhǔn)備玩玩免免和LFS,不過(guò)估計(jì)有這閒時(shí)間的可能性很小。

          在公司裡老板還在要我用Powerbuilder寫程序,因此完全放棄Windows是不可能的,最近試驗(yàn)了一下qemu,其性能實(shí)在不敢恭維,使用VMWare就好得多。

          posted @ 2005-12-14 13:14 javaFever 閱讀(369) | 評(píng)論 (0)編輯 收藏

          無(wú)題一首

          晨起,略有雨氣,忽欲飲,無(wú)酒,唯詩(shī)爾。

          大夢(mèng)隨風(fēng)去
          清歡捲雨來(lái)
          欲醉三千日
          神魂到蓬萊

          posted @ 2005-12-14 13:05 javaFever 閱讀(232) | 評(píng)論 (0)編輯 收藏

          Debian已經(jīng)安裝完畢

          把jdk1.5.0_06裝上了,不需要使用kernel-headers,不知道是記錯(cuò)了還是現(xiàn)在改正了。 盡量在xfce下干活吧,快捷些,感覺(jué)上也更象高手。裝了個(gè)KDE下的瀏覽器──Konqueror,雖然大,感覺(jué)比FireFox要爽多了,基本上想要的功能它都有。而且是集文件游覽器和Web瀏覽器于一身。 IDEA也裝上了,今天Liuzy推薦我用這個(gè)東東來(lái)做Java開發(fā),以前一直用Eclipse,前兩天想換換口味,于是下了netbeans5.0 beta2來(lái)試試,感覺(jué)還可以,至少集成了JSF和struts框架,eclipse下這些框架的免費(fèi)插件可不太好用。開發(fā)Web應(yīng)用也比Eclipse好用些。不過(guò),IDEA這東東我還沒(méi)有玩通,感覺(jué)除了書寫代碼很爽外,也沒(méi)有多少過(guò)人之處,最重要的是不免費(fèi),用起總是于心不甘。

          posted @ 2005-12-08 23:37 javaFever 閱讀(205) | 評(píng)論 (0)編輯 收藏

          Debian testing

          今天把Debian換成了最的tesing版本,內(nèi)核為2.6.12-1-686,可是還沒(méi)有找到有哪個(gè)源上有這個(gè)版本的headers,我記得以前安裝java包時(shí)是需要這個(gè)包的,不知道現(xiàn)在是否也一樣,明天準(zhǔn)備裝jdk-1.5.0_06試試。

          第一次在Linux下用Firefox來(lái)書寫這個(gè)日志,感覺(jué)很不錯(cuò)。

          posted @ 2005-12-07 23:28 javaFever 閱讀(501) | 評(píng)論 (2)編輯 收藏

          試了試Ubuntu

          今天把Ubuntu下下來(lái)看看了,版本是5.10,結(jié)果很失望,完全不象Debian那樣自由,安裝根本沒(méi)有選擇,一股腦的全都裝上去了,安全花了近一個(gè)鍾頭,啟動(dòng)速度也很慢,算了,還是裝回Debian好了。

          posted @ 2005-12-05 21:55 javaFever 閱讀(175) | 評(píng)論 (0)編輯 收藏

          無(wú)題(外一首)

          十年落拓功名意 一夢(mèng)方知?dú)w未遲
          丞相多因直諫死 將軍幾度陷城池
          常思范蠡遁江去 欲效陶潛隱東籬
          曾子堂前何所事 菊花把酒對(duì)詩(shī)詞

           (2004年6月10日,那時(shí)候一直在考慮辭職,公司已經(jīng)沒(méi)有前景了,而且也感覺(jué)自己在公司里也沒(méi)有什么發(fā)展空間,混到部門經(jīng)理似乎就到頭了,所以也準(zhǔn)備另謀出路。心情郁悶之際,遂寫此事。)

          登翠屏山有感
          俗子無(wú)知抱石寐 梵音清越向天行
          經(jīng)書難解心頭事 只問(wèn)野趣不問(wèn)名
           (2004年6月14日,背景同前一首)

          posted @ 2005-08-27 22:15 javaFever 閱讀(359) | 評(píng)論 (0)編輯 收藏

          游園

          (一)
          落落蕭條日 無(wú)為登古臺(tái)
          青山臨水起 云氣向園開
          雨帶荷花老 風(fēng)摧竹葉哀
          前賢皆已去 當(dāng)思故人來(lái)

          (二)
          我愛(ài)黃山谷 其書意蕩然
          詩(shī)成出居士 行文過(guò)米顛
          流杯有筆過(guò) 摩壁豈無(wú)宣
          形負(fù)滄桑去 名隨青史全

          (大概是2004年5月中旬吧,那時(shí)候詩(shī)興大發(fā),寫了不少,可能跟看了書畫展有關(guān),也因?yàn)楣拘б嫦禄贌o(wú)聊賴,寄情于詩(shī)了。游園其一我感覺(jué)寫的還不錯(cuò),格與境都上了一個(gè)臺(tái)階。)

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

          五月四日于人民公園觀書畫展有感

          (一)
          黑白有真味 今人多不識(shí)
          落落觀摩者 幾人可相知

          (模仿劉禹錫的“泠泠七弦上,靜聽松風(fēng)寒,古調(diào)雖自愛(ài),今人多不彈”這首詩(shī)。2004年五一節(jié),老婆來(lái)宜賓,告訴我人民公園有書畫展,便一同去看,結(jié)果樓下麻將聲聲,樓上清風(fēng)雅靜,看書畫展的人還沒(méi)有一桌打麻將的人多,遂感嘆傳統(tǒng)文化的流失。)

          (二)
          真草可清心 章白豈無(wú)趣
          白丁難成行 鴻儒可同路

          posted @ 2005-08-27 22:12 javaFever 閱讀(399) | 評(píng)論 (0)編輯 收藏

          某年月日途徑成都遂騎車溫江訪友

          一騎單車快 兩只飛燕閑
          至今思故友 一別五六年
          投箸先有淚 舉觴亦無(wú)言
          明日八百里 前路已茫然

          (這首詩(shī)應(yīng)該在98或99年我從銀行辭職的前夕,到溫江找李顯俊兄聊了聊,他還是那么溫文爾雅,書藝也大有進(jìn)步。如今到了成都,卻沒(méi)有的他的聯(lián)系方法,也不知他還在不在化工技校教書。)

          posted @ 2005-08-27 22:12 javaFever 閱讀(373) | 評(píng)論 (0)編輯 收藏

          古琴

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

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

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

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

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

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

          步韻一位朋友的詞

          點(diǎn)絳唇

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

          原詞如下:

          點(diǎn)絳唇.憶

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

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

          ExadelStudio2.5插件使用(三)

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

          Image00000.jpg

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

          Image00003.jpg

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

          Image00004.jpg

          Managed Bean 和普通的JavaBean沒(méi)有任何區(qū)別,TableTest類只有一個(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() {
              }

          }


          再次打開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)的代碼,方便你書寫JSP程序。

          Image00005.jpg

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

          Image00007.jpg

          如果你不是使用的“Exadel Studio”透視圖,現(xiàn)在請(qǐng)使用它,并打開“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 閱讀(754) | 評(píng)論 (0)編輯 收藏

          氣憤

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

          老婆今天回家了,衣來(lái)伸手飯來(lái)張口的幸福生活就此結(jié)束,今天開始又是吃伙食團(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,打開,安裝Exadel后會(huì)自動(dòng)使用Exadel的XML編輯器打開XML文檔,如果是web.xml和faces-config.xml,還會(huì)有相應(yīng)的圖形化工具。使用圖形化工具來(lái)管理很方便,大大提高了開發(fā)效率。由于這個(gè)web.xml比較簡(jiǎn)單,所以我直接編寫源文件,最終的文件內(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是微軟官方的,開始SQLServer2000沒(méi)有打SP3,怎么也配不成功,結(jié)果一打SP3就行了,浪費(fèi)了不少光陰。

          {測(cè)試數(shù)據(jù)源}
          最后,寫一個(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 閱讀(734) | 評(píng)論 (1)編輯 收藏

          主站蜘蛛池模板: 新和县| 田阳县| 通化市| 城步| 道孚县| 那坡县| 绥江县| 缙云县| 双峰县| 潜江市| 德安县| 白山市| 江油市| 德庆县| 瑞安市| 南郑县| 商水县| 凉山| 蒙山县| 芜湖市| 湖南省| 廊坊市| 武平县| 荥经县| 刚察县| 南安市| 天气| 柘城县| 武汉市| 东港市| 滕州市| 黄冈市| 宁德市| 辽源市| 库尔勒市| 深水埗区| 纳雍县| 商城县| 阜城县| 湟中县| 南华县|