eclipse中如果選中一個變量,則在本源文件中高亮顯示相同的變量
Window->Preferences,在type filter text 中輸入Mark Occurrences
在Java-Editor-Mark Occurrences中將Mark occurrences of the selected element in the current file.選中OK即可
|
下午頭兒出去了,這周一口氣粘帖復制了14個Action20個jsp,沒什么技術含量,完全是粘帖復制,我在等待什么?
|
工作快三年了,一直沒有用到spring,做的幾個項目全部基于struts+hibernate,昨天忙完手頭的活兒,自己建了個struts+spring+hibernate的demo,能用MyEclipse自動生成的全部自動生成,表映射、pojo、SessionFactory、applicationContext.xml、struts-config.xml都自動生成了,弄了兩個jsp,一個add,一個view
運行發現,spring未被加載,原因找來找去找不到,最后還是看了以前寫的一篇blog,可能存在重復jar包,有沖突,確實發現Myeclipse自動鍵入的jar包好多好多,而且有的有重復,搗鼓出以前做的例子,復制lib里面的jar包,果然OK了,實現了增查。
spring確實是個好東西,強大、強大。
Google SSH整合的例子,發現都是Struts2SpringHibernate了,俺還struts1呢,out了
轉自:http://pengjiayou.com/blog/fedora-10-auto-install-scripts
easyLife 是另一款和 autoten 類似的軟件,是剛剛才發現的,不過其官方網站打不開,需翻墻解決,我找到了它的下載頁面,在 sf.net 上,請直接點擊這里下載最新的 easylife-1.1-1.fc10.noarch.rpm 。
easyLife 允許你配置 Fedora 10 的各軟件,只需用鼠標點擊就搞定了!它的主要特性如下:
- 為你系統中的常規用戶添加 sudo 命令
- 自動安裝 Flash Player 插件
- 安裝各種 Codecs (視頻、音頻解碼庫等)
- 安裝額外字體
- 安裝 Livna 軟件倉庫以安裝其它額外及非免費軟件
- 安裝 Skype
- 為 Firefox 安裝 Sun Java 和 Sun Java Plugin 插件
- 用 system-switch-java 整合 Sun Java
- 安裝 Adobe Raeder
- 安裝其他軟件等
用esayLife安裝來Flash Player 挺好用,真的是省了很多事,可能對我這個Linux初學者不是啥好事
google app engine對String長度有限制,里面中有個com.google.appengine.api.datastore.Text類型以替換長String,但是換了com.google.appengine.api.datastore.Text后不能向數據庫保存了,就單單這個字段不能保存,看數據庫列中就沒有這個字段,google中找到 說要在字段前加@Enumerated,但是在我這也不好使,后來又找到要加
@Persistent(serialized="true", defaultFetchGroup="true")
private Text text;
// private String text;
恩,這下好使了
開發中遇到這個異常:
NestedThrowablesStackTrace:
Attempt was made to manually set the id component of a Key primary key.
If you want to control the value of the primary key, set the name
component instead.
org.datanucleus.exceptions.NucleusUserException: Attempt was made to
manually set the id component of a Key primary key. If you want to
control the value of the primary key, set the name component instead.
原來的修改代碼是這樣些的:
public void attachDirty(UrlTarget instance) {
PersistenceManager pm = null;
try {
pm = PMF.get().getPersistenceManager();
UrlTarget ut = (UrlTarget) pm.getObjectById(UrlTarget.class, instance.getId());
ut.setName(instance.getName());
ut.setRemark(instance.getRemark());
ut.setUrl(instance.getUrl());
pm.makePersistent(ut);
} catch(Exception ex){
ex.printStackTrace();
}finally {
if(pm != null)pm.close();
}
}
public UrlTarget findById(Long id) {
PersistenceManager pm = PMF.get().getPersistenceManager();
try{
return (UrlTarget) pm.getObjectById(UrlTarget.class, id);
}catch(Exception ex){
ex.printStackTrace();
}finally {
pm.close();
}
return null;
}
在利用findById方法得到對象后修改,但是findById中pm已經關閉,這就是錯誤的原因了
來自http://net.zdnet.com.cn/network_security_zone/2008/0519/869835.shtml
一.簡介
vi是unix世界中最通用的全屏編輯器,linux中是用的是vi的加強版vim,vim同vi完全兼容,vi就是"visual
interface"的縮寫。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制,這是其它編輯程序所沒
有的。
vi不是一個排版程序,它不象Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。
vi沒有菜單,只有命令,且命令繁多。只要在命令行上鍵入vi就可進入vi的編輯環境。vi有三種狀態:命令模式,文本輸入模式和末行模式。鍵入vi回車后首先進入vi的命令模式。
在命令模式下用戶輸入的任何字符都被Vi當作命令加以解釋執行,如果用戶要將輸入的字符當作是文本內容時,則首先應將Vi的工作模式從命令模式切換到文
本輸入模式。在命令模式下,按一下"a"("A")鍵或者”i”
("I")或者"o"("O")鍵,即進入插入態文本輸入模式。按"a"鍵,插入到當前光標的后面;按"i"鍵,在當前光標處插入;按"A"鍵,在當前光
標所在行的最后插入;按"I"鍵,在當前光標所在行的開頭插入。在文本輸入模式下,按Esc鍵,即回到命令模式。
末行模式也稱ex轉義模式。Vi有一個專門的“轉義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會
在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編
輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。
例如:
:1,$s /A/a/g
則從文件第一行至文件尾將大寫A全部替換成小寫a。
若在末行模式下輸入命令過程中想轉換的到命令模式,可按鍵,或用退格鍵將輸入的命令全部刪除之后,再按一下退格鍵,即可使Vi回到命令模式下。
如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
Vi中的許多命令都要用到行號及行數等數值。若編輯的文件較大時,自己去數是非常不方便的。為此Vi提供了給文本加行號的功能。這些行號顯示在屏幕的左
邊,而相應行的內容則顯示在行號之后。 需要說明的是,這里加的行號只是顯示給用戶看的,它們并不是文件內容的一部分。
當用Vi建立一個新文件時,在進入Vi的命令中也可以不給出文件名,當編輯完文件需要保存數據時,再由用戶指定文件名。
進入Vi時,用戶不僅可以指定一個待編輯的文件名,而且還有許多附加操作。如果希望在進入Vi之后,光標處于文件中特定的某行上,可在Vi后加上任選
項+n,其中n為指定的行數。例如 鍵入命令:vi +3 example.txt后,光標將位于文件example.txt中的第3行上。
二.vi常用的命令
1.插入(Insert)命令
Vi提供了兩個插入命令:i 和 I命令
(1)i命令
插入文本從光標所在位置前開始,并且插入過程中可以使用鍵刪除錯誤的輸入。此時Vi處于插入狀態,屏幕最下行顯示“--INSERT--”(插入)字樣。
例1,有一正在編輯的文件,如下所示:
Welcome to vi world!Come on!
~
~
光標位于第一個“!”上,需在其前面插入:
This is an example!
使用i命令,并輸入相應文本后,屏幕顯示如下:
Welcome to vi world This is an example!!Come on!
~
~
由此例可以看到,光標本來是在第一個“!”處,但是由于是從光標所在位置前開始插入,所以這個“!”就被擠到了新插入的文本之后。
(2)I命令
該命令是將光標移到當前行的行首,然后在其前插入文本.
2.光標移動操作在屏幕上移動
全屏幕文本編輯器中,光標的移動操作無疑是最經常使用的操作了。用戶只有熟練地使用移動光標的這些命令,才能迅速準確地到達所期望的位置處進行編輯。
Vi中的光標移動既可以在命令模式下,也可以在文本輸入模式下,但操作的方法不盡相同。
(1)在文本輸入模式下,可直接使用鍵盤上的四個方向鍵移動光標。
(2)在命令模式下,有很多移動光標的方法。不但可以使用四個方向鍵來移動光標,還可以用h、j、k、l這四個鍵代替四個方向鍵來移動光標,這樣可以避免
由于不同機器上的不同鍵盤定義所帶來的矛盾,而且使用熟練后可以手不離開字母鍵盤位置就能完成所有操作,從而提高工作效率。
3.在屏幕上移動
Vi提供了三個關于光標在全屏幕上移動并且文件本身不發生滾動的命令。它們分別是H、M和L命令。
(1)H命令
該命令將光標移至屏幕首行的行首(即左上角),也就是當前屏幕的第一行,而不是整個文件的第一行。利用此命令可以快速將光標移至屏幕頂部。若在H命令之前
加上數字n,則將光標移至第n行的行首。值得一提的是,使用命令dH將會刪除從光標當前所在行至所顯示屏幕首行的全部內容。
(2)M命令
該命令將光標移至屏幕顯示文件的中間行的行首。即如果當前屏幕已經充滿,則移動到整個屏幕的中間行;如果并未充滿,則移動到文本的那些行的中間行。利用此
命令可以快速地將光標從屏幕的任意位置移至屏幕顯示文件的中間行的行首。例如,在上面屏幕顯示的情況下(不論光標在屏幕的何處),在命令模式下,輸入命令
M之后,光標都將移到add這一行的字母a上。同樣值得一提的是,使用命令dM將會刪除從光標當前所在行至屏幕顯示文件的中間行的全部內容。
(3)L命令
當文件顯示內容超過一屏時,該命令將光標移至屏幕上的最底行的行首;當文件顯示內容不足一屏時,該命令將光標移至文件的最后一行的行首??梢?,利用此命令
可以快速準確地將光標移至屏幕底部或文件的最后一行。若在L命令之前加上數字n,則將光標移至從屏幕底部算起第n行的行首。同樣值得一提的是,使用命令
dL將會刪除從光標當前行至屏幕底行的全部內容。
4.編輯命令
讓我們看看最簡單也是最常用的編輯過程:沒有人不犯錯誤。所以遲早你會碰到修改你輸入的文本的時候。實際上花在字處理上的大多數時間是修改而不是輸入新的東西。因此,你要知道如何方便地修改就很重要。
(1)x--刪除一個字符
刪除文字的最簡單的方式是用x。這個命令的結果是光標所處的字符的消失,后面的文字左移動。如果你刪除的字符是一行最后的一個字符,那么光標將向左移動一個,這樣光標就不會停留在不存在的字符的下面了。假如沒有任何文字了,喇叭就叫。
(2)d--刪除對象
這個命令的右邊還要有一定的文字對象。文字對象就是一塊文字。他右邊接的就是在控制光標移動的那些字符。例如 w 表示向前一個單詞,那么 dw 將刪除下一個單詞。5w 表示前進5個單詞,那么 d5w 將刪除他們。
(3)dd--刪除一行
最常用的 d 系列命令之一。和前面一樣, 5dd 將刪除 5 行
(4)D--整個刪除
大寫形式的 D 用來刪除從光標到行尾。和 d$ 一樣效果。
(5)u--恢復
要后悔嗎?他不僅僅撤消刪除,還撤消你所有的編輯工作。
(6).--重復
重復編輯工作。
5.退出Vi
當編輯完文件,準備退出Vi返回到shell時,可以使用以下幾種方法之一。
(1)在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。
(2)在末行模式下,輸入命令 :w Vi保存當前編輯文件,但并不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。
例如:w newfile
此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:
File exists (use ! to override)
此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的文件名來保存當前文件。
(3)在末行模式下,輸入命令 :q 系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶該文件被修改后沒有保存,然后Vi并不退出,繼續等待用戶命令。若用戶就是不想保存被修改后的文件而要強行退出Vi時,可使用命令:q! Vi放棄所作修改而直接退到shell下。
(4)在末行模式下,輸入命令 :wq Vi將先保存文件,然后退出Vi返回到shell。
(5)在末行模式下,輸入命令 :x 該命令的功能同命令模式下的ZZ命令功能相同。
來自:http://net.zdnet.com.cn/network_security_zone/2008/0519/869835.shtml
因為最近比較閑 有點不思進取 也沒什么問題要寫了
今天不錯,發現一個,恩,感覺不錯
做了一個上傳Excel并解析數據然后入庫的功能,里面涉及到是否是日期格式的判斷
之前是這么寫的(深諳這么寫是不好的,但以為它是可靠的)
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.parse(content);
return true;
} catch (Exception e){
return false;
}
}
現在發現問題了,對于“2008-06-23asdf”這種情況是返回true的,哈哈,看來是孤陋寡聞了,基礎不扎實了,看API上這樣講:
在默認情況下,進行的分析是不嚴格的:如果輸入的形式不是此對象的格式化方法使用的形式,但仍可作為日期進行分析,則分析將獲得成功。客戶機可能通過調用 setLenient(false) 來強調嚴格遵守該格式。
按照API說法,將代碼改成
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
sdf.
setLenient(false);
sdf.parse(content);
return true;
} catch (Exception e){
return false;
}
}
運行結果“2008-06-23asdf”這種情況還是返回true的,但“2008-13-23”這種情況是返回false的
最后改進程這種寫法,可以適應"yyyy-MM-dd""yyyy-M-d""yyyy-MM-d""yyyy-M-dd"
private boolean checkDate(String content) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d");
try {
sdf.setLenient(false);
content = content.replaceAll("-0", "-");
Date d = sdf.parse(content);
String s = sdf.format(d);
return content.equals(s);
} catch (Exception e){
return false;
}
}
參考資料http://www.99inf.net/SoftwareDev/Java/52734.htm
http://blog.163.com/everlee@126/blog/static/263574220089822631229/
當然也可以用正則表達式做到。
昨天就發現這個問題,用firefox沒問題,我的chrome谷歌瀏覽器是3.0.182.3
提示 yahoo郵箱無法加載
按照提示 清楚緩存也沒有用
|
Yahoo! 郵箱無法加載 |
Loading Yahoo! Mail failed due to a client side error
您可以嘗試對您的防火墻進行設置,并且禁用“屏蔽廣告”。如果這個方法仍不湊效,請聯系我們的客服。
|
建一個文本文件,命名為proxy.pac
用文本編輯器打開 輸入:
function FindProxyForURL(url,host){ if(dnsDomainIs(host, ".blogspot.com")){ return "PROXY google.cn:80"; } }
保存后,在FireFox-工具-選項-高級-網絡選項卡-設置-選自動代理配置URL ,在文本框中輸入file:///C:/proxy.pac
OK,可以訪問blogger了。
別的代理
https://soproxy.appspot.com/
http://proxy-12345.appspot.com/
貌似已經跟我沒啥關系的六一兒童節,忙活了一天,簽字畫押,我勇敢的加入房奴大軍了...
一下子從小康生活回歸到了解放前,嗚嗚~~~~(>_<)~~~~
拿著一大堆票據、一大把鑰匙回到家倒頭便睡,累死了
預祝房奴生活開開心心。
想參考一下roller的設計思路,遂又撿起roller,剛開始是看roller4.0,磨嘰了半天時間,因為對struts2不熟悉,轉而搞了個
roller3.0,還好都運行起來了,之中發現下載的源碼竟然不全,如果不引用roller的jar包的話會報錯,缺幾個package里的類,累的我
還要反編譯,不知道我是走彎路了還是怎么著,總算運行起來了,改了log4j的配置讓日志在控制臺輸出,昨晚下班剛弄到這兒,接著搗鼓
突然想起來寫blog也好長時間了,可以追溯到3年前,一開始是在msn space,后來搬家到baidu,那時候對baidu還是很支持的,后來感覺baidu進步有點慢啊,完了還出來一些緋聞
接著就有些不安分了,到處搬家哈哈,csdn、javaeye、博客大巴、yo2、blogjava、blogger,哦天,真的不少,現在csdn、
javaeye、博客大巴、yo2已經荒了,blogger這幾天還被和諧了很郁悶,就剩blogjava和baidu了,現在在搗鼓在
GAE上弄個java寫的blog,已經糊弄上去了,湊合能添加文章,一有空就修改一下代碼往上面更新一下,現在在研究怎么靜態化和上傳圖片