2011年12月14日 星期三

[Struts2] Simple UI Tags

文章轉貼自 here

 之前我們介紹了一些 tags,主要都是輔助 programmers 完成頁面上資料的存取,在這裡我將開始描述關於顯示在頁面上與使用者互動的表單 (form)。不過,我先簡介一些共同有的 attributes,因為這些 attributes 如果在介紹 tag 時重複敘述,感覺過於累贅!

共同 attributes

共 同的 attributes 就是所有的 tags 都會擁有的,為了之後將重點放在各個 tags 上,我們就將這些 attributes 分開來介紹,這裡要注意的是,如果某個 attribute 的 type 屬於 String,那就表示該 attribute 的 value 只能接受字串,如果想要將 OGNL expression language 寫入,就必須在 expression 加上 %{} 符號 - %{ expression } - 這樣 Struts2 framework 就可以正確解析 OGNL 了!如果該 type 屬於 Object,那你就可以大方的將 OGNL expression 置入,無須加上 %{} 符號了!

AttributeTypeDescription
nameString用來設定 form 元件,並且會依照 name 所設定的值,將其對應到 Action 中的 property
valueObject用來設定 form 元件中所包含的值
keyStringi18n 用
labelString設定某個 form 元件顯示的字串
labelpositionString設定 label 顯示的位置:left 或 top
requiredBoolean如果設定為 true,則該 form 元件的 label 會出現 * 符號
idString相同於 HTML 的 id 屬性,通常用於 java script 與 CSS
cssClassString相同於 HTML 的 css 屬性
cssStyleString相同於 HTML 的 style 屬性
disabledBoolean相同於 HTML 的 disabled 屬性
tabindexString相同於 HTML 的 tabindex 屬性

Simple UI tags


上面描述的是共同的 attribute,以下將介紹一些 UI 相關並基礎的 tags,對於共同的 attribute 就不會重複提及。

1) Head Tag
對 於任何的 HTML 或 JSP 來說,要產生一個網頁通常都是以 開頭,對於 Struts2 提供的 來說,卻不同於一般的 HTML head tag,如果你試過 Struts2 提供的 head tag,你應該會發現,tag 本身並不作任何事情,而是在網頁中默默的幫我們加入一些檔案連結,這些檔案的連結目的在於支援其他的 tag 完成設定。在使用 Struts2 提供的 head tag 時,一定要放置於 HTML 的 head tag 之下,否則自動產生的檔案連結會放到不正確的位置而導致無法使用某些功能!
Struts 的 head tag 本身並沒有其他的 attribute 需要設定,我們可以簡單的使用:



這樣的撰寫就會自動幫我們產生一些檔案的連結。

2) Form Tag
Form tag 對於 UI 來說是最重要的 tag,因為他是所有 UI tag 的上層元件,如果對於 HTML 熟悉的話,form tag 的使用應該不會陌生,而且我們之前就看過蠻多的範例了!下表是一些 form tag 的 attributes (除了共同 attributes 之外):

AttributeTypeDescription
actionString指定該 form 送出的目標 Action
namespaceString目標 Action 的 namespace,預設值是目前的 namespace
methodString相同於 HTML 的 method attribute,預設值是 POST
targetString相同於 HTML 的 target attribute
enctypeString若要使用檔案上傳,則填入 multipart/form-data
validateBoolean設定該 form 是否使用 javascript 驗證,當使用 Validation Framework 時,此 attribute 要設定為 true,驗證功能才能正常運作

在 上述眾多 attributes 中,最重要的莫過於 action 了!因為他主導整個 form 的目標 action,在這裡設定 action attribute 時要注意,我們無須填入 .action 的縮寫,因為 form 元件會幫我們完成,如果目標的 action 與現在是相同的 namespace,我們就無須填寫 namespace,否則我們就需要 namespace attribute 幫助我們找到 Action。每當 form 元件被執行時會有以下三種可能發生的狀況:
  1. 如果 action attribute 沒有被設定,則 form 的目標就會指向目前的 Action
  2. 如 果有指定 action attribute,form 就會根據 Action 的位置配合上 namespace 來設定目標。如果 namespace 沒有被指定,就會使用目前的 namespace。當我們在設定 action attribute 時,我們無須加上 .action 的延伸網址
  3. 如果 action attribute 所指定的值不屬於一個 Action,form 元件的目標就會直接將該值作為目標。這種情況下,我們就需要自己加上延伸網址 (如:.jsp, .html 等),並且我們的相對位址需要以 / 作為開頭,例如:/myApp/b.jsp。另外要注意的是,如果我們採用此種方法,即使我們指定 namespace attribute,form 元件也會自動忽略!
3) Textfield Tag
這 個 tag 對於你來說也是無可避免的!因為沒有此 tag,你就無法取得使用者的資料,所以這個 tag 也算是最常使用的!不過要注意的是 textfield tag 的 name 與 value attribute,一般來說,我們無需要指定 value attribute,因為我們只需要指定 name attribute 讓 OGNL 幫我們去 ActionContext 中取得對應的值來填入,當然,我們也可以填寫 value attribute,但是要注意的是,如果我們自己有填寫 value attribute,那 name 指定的 OGNL 所取到的值就不會顯示在 textfield tag 上了,這點要注意喔!以下是一些 textfield tag 的 attributes:

AttributeTypeDescription
maxlengthString指定 textfield 的可輸入最大長度
readonlyBoolean如果設定為 true,則該 textfield 就無法輸入字串
sizeStringtextfield 的長度

4) Password Tag
這 個 tag 跟 textfield 幾乎是一樣的,不過當使用者輸入字串時,所有的文字都會被包裝成其他的符號,以防資料外洩!這個 tag 的使用其實跟 textfield 是相同的,所以我就不多說了!以下是 password tag 的 attributes:

AttributeTypeDescription
maxlengthString指定 textfield 的可輸入最大長度
readonlyBoolean如果設定為 true,則該 textfield 就無法輸入字串
sizeStringtextfield 的長度
showPasswordBololean使否將 OGNL 取到的值顯示在 value 中,預設 false

上 面列出的 attributes 中,幾乎跟 textfield 是一樣的,不過多了一個 showPassword attribute,這個 attribute 是讓我們設定是否要將 name attribute 中指定的 OGNL 取到的值顯示,在這裡我所謂的顯示不是大剌剌的用文字方式顯示,當然是有被遮蔽的顯示,不過從原始碼中還是可以看到原來的值,所以 showPassword attribute 預設值為 false,為的就是不要產生一些 security issues 來困擾 programmers,在這裡我也建議你不要將此 attribute 設定為 true!

5) Textarea Tag
同樣的,textarea 從開發角度上來說,與 textfield 並沒有太大的差別,主要就是提供使用者多行的輸入欄位!以下就是一些 textarea tag 的 attributes:

AttributeTypeDescription
colsInteger指定 textarea 的行數
rowsInteger指定 textarea 的列數
readonlyBoolean如果設定為 true,則該 textarea 就無法輸入字串
wrapString相同於 HTML 的 wrap attribute

6) Checkbox Tag
這 裡的 checkbox 元件如果你認為跟 HTML 的 checkbox 一樣的話,那你就錯了!因為在 Struts2 提供的 checkbox 元件是一個單一 HTML 的 checkbox,這是什麼意思呢?一般的 HTML checkbox 提供了多個選項讓使用者選擇零或多個,但是這裡的 checkbox 只提供使用者一個選項,也就是選或不選。所以這個 checkbox 不同於 HTML 的 checkbox。這個 checkbox 只提供 Boolean 的功能,也就是說其對應的 property 一定要是一個 boolean property,如果要像 HTML 提供的 checkbox 有相同功能的話,要改使用 checkboxlist tag,現在不會提到!
以下是 checkbox tag 的 attribute:

AttributeTypeDescription
fieldValueString這裡所填寫的 value 是真正會被傳送到 Action 中的值,主要是 true 或 false,預設值為 true
valueString這裡是用來判斷此 checkbox 是否會被勾選

看 到上面的 attribute 你一定會感到很奇怪,value attribute 已經是共同的 attribute 了,為何在這裡還會在重新點出呢?原因就在於 checkbox 元件還有一個 fieldValue 這會與 value attribute 搞混!所以在這裡要特別點名。
fieldValue attribute 中的值代表當此 form 被送出後,fieldValue 中填寫的值會真正被送到 Action 中對應的 property,而 value attribute 只是用來判斷此 checkbox 是否需要被勾選。當 OGNL 取得 ValueStack 中的值,會將此值寫入 value attribute 中 (任何一個元件都是這樣),使用者可以看到此 checkbox 是否有被選起來。所以 fieldValue 與 value attribute 之間不要弄混了!
另外,checkbox 所指定的 name attribute,其對應到的 property 需要是一個 boolean 型態,否則會無法運作!

在這裡列出了六種簡單的 UI tag 給你參考,這裡列出的都是針對單一的 property,之後我將介紹關於 Collection-based 相關的 UI tags。

2011年5月24日 星期二

[轉貼]軟體推薦:Android 手機10大必備軟體

網頁連結於此 網頁

筆者的手機好久沒有愛惜它了,想說來查查看有啥必備軟體,不查不知道,一查嚇了一跳~哇,大家好賣力的在推薦,這一篇文章介紹的好詳細,讓人想來分享一下。

請點連結過觀看。

以上。

[轉貼]支援/相容 Firefox 4 的擴充套件推薦列表

轉貼於 此部落格,詳細的記錄了各種套件的功能唷!

升級 Firefox 後,啊哩~怎麼 pcman(看bbs的套件)被停用了!?怎麼 eazy to drag(使用滑鼠就可輕鬆拖曳連結並開啟)也被停用了!?

停用的原因則是與 升級的 4.0.1版不相容……

好吧!認命的google一下,好險還是有類似的套件可以用。

-----------以下正文開始-----------

相較於 Google Chrome 的快速更新版本編號, Firefox 4 的發表, 反而讓人有種期待的心情, 不過每一回改版, 就是或多或少會遇上常用的擴充套件並未隨之更新, 一者是等待做整更新, 要不就是期待有沒有熱心的網友釋出修正版本, 這回 Mozilla 讓擴充套件開發人員有不少的緩衝時間, 先前安裝 Firefox 4 RC2 時, 常用的套件都已經可以正常運作, 不需要透過安裝 Nightly Tester Tools 的方式來啟用相容模式。

雖然這次更新, 已經加入了 Sync, 不過最希望的同步擴充套件功能還是沒有出現, 雖然先前嘗試過 Siphon 這套擴充套件, 在某種程度上可以達到需求, 不過問題還是很多, 對中文擴充套件的相容度也頗為糟糕, 重點是開發似乎遇到瓶頸, 釋出到現在也沒有繼續更新, 自然也沒辦法在 Firefox 4 下正常運作, 同步這個部分, Google Chrome 內建的同步擴充功能倒是非常讓人激賞, 啟用同步功能, 就可以簡單在不同電腦中安裝並直接開始使用, 完全不需要一個個手動安裝, 在火狐出現類似功能之前, 還是整理個常用擴充套件列表, 方便記憶和管理。


推薦使用
套件名稱 : Adblock Plus 1.3.3
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/adblock-plus/
更新日期 : December 23, 2010
使用教學 : 點我開啟
套件介紹 : 誠如其名, Adblock 自然是針對網頁中的廣告連結或者是 Popup 進行攔阻, 提供乾淨的瀏覽頁面, 不過要達到最佳的效果, 針對自己經常瀏覽的網頁, 來挑選對相對應的過濾規則是很重要的, 以自己的使用經驗, 目前訂閱的 Filter 為 EasyList, EasyElement 以及 ChinaList, 至於訂閱的方式請參考使用教學

套件名稱 : BBSFox 1.0.75
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/bbsfox/
更新日期 : January 1, 2011
使用教學 : 點我開啟
套件介紹 : 直接使用 Firefox 來開啟 BBS, 使用者無需額外安裝像是 PCMan 或者 KKMan 這類軟體來瀏覽 Ptt 等 BBS Server

套件名稱 : Download Statusbar 0.9.8
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/download-statusbar/
更新日期 : March 11, 2011
套件介紹 : Download Statusbar 不僅能夠將原本跳出的下載視窗, 縮小到狀態列上方, 不僅僅用簡單明瞭的方式來顯示目前檔案下載狀況以及進度, 也提供使用者許多的自訂功能以及檔案續傳等功能, 更可以呼叫防毒軟體來檢查檔案是否有夾帶病毒

套件名稱 : Easy DragToGo+ 1.1.3
套件網頁 : https://addons.mozilla.org/zh-TW/firefox/addon/easy-dragtogo-1/
更新日期 : March 14, 2011
使用教學 : 點我開啟
套件介紹 : 過拖拉的滑鼠手勢, 輕易地在新分頁開啟連結, 搜尋選取的文字以及快速的儲存圖片, 尤其是經常習慣閱讀大量論壇文章的使用者更是不能錯過, 快速的將所有文章開啟在背景分頁中, 然後一口氣閱讀所有開啟的討論串

套件名稱 : FireGestures 1.6.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/firegestures/
更新日期 : January 2, 2011
使用教學 : 點我開啟
套件介紹 : 滑鼠手勢一直都是瀏覽網頁時最重要的輔助功能之一, FireGestures 不管是在功能上或者是對於手勢的辨識度, 在同質性套件中, 可以說是一時之選

套件名稱 : Greasemonkey 0.9.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/greasemonkey/
更新日期 : January 25, 2011
套件介紹 : 安裝油猴之後, 可以讓火狐套用使用者腳本中的 JavaScript 來調整顯示介面以及強化網頁應用功能

套件名稱 : IE Tab 2 (FF 3.6+) 2.12.21.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/ie-tab-2-ff-36/
更新日期 : December 21, 2010
使用教學 : 點我開啟
套件介紹 : 在火狐瀏覽網頁時, 呼叫 IE 核心來開啟網頁內容, 不需要再額外打開 IE 來瀏覽 IE Only 的網頁, 同時也可以自訂清單, 開啟某些網頁自動使用 IE 核心來瀏覽內容

套件名稱 : Xmarks 書籤同步套件 3.9.5
套件網頁 : https://addons.mozilla.org/zh-TW/firefox/addon/xmarks-sync/
更新日期 : February 14, 2011
使用教學 : 點我開啟
套件介紹 : 在不同電腦以及不同瀏覽器之間同步書間、密碼、歷史資訊等訊息


調整使用者介面
套件名稱 : Barlesque 1.15
套件網頁 : https://addons.mozilla.org/zh-TW/firefox/addon/barlesque/
更新日期 : December 30, 2010
使用教學 : 點我開啟
套件介紹 : 擴充套件讓火狐的附加元件列顯示更為精簡而快速的操作顯示介面

套件名稱 : Easy App Tabs 3
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/easy-app-tabs/
更新日期 : February 13, 2011
使用教學 : 點我開啟
套件介紹 : 在目標分頁按下右鍵選擇"釘選成應用程式分頁"是這回 Firefox 4 新加入的功能之一, 擴充套件允許使用滑鼠雙擊目前瀏覽分頁切換成 App Tab

套件名稱 : Locationbar² 1.0.6
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/locationbar%C2%B2/
更新日期 : February 28, 2011
使用教學 : 點我開啟
套件介紹 : 除了自訂網址列的顯示格式, 擴充套件本身也提供快速的子網域切換方式

套件名稱 : Movable Firefox Button 1.2
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/movable-firefox-button/
更新日期 : March 9, 2011
使用教學 : 點我開啟
套件介紹 : 當使用者將 Firefox 4 開啟全螢幕時, 擴充套件允許使用者可以自訂功能選單按鈕的位置

套件名稱 : Personal Menu 5.0.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/personal-menu/
更新日期 : March 16, 2011
使用教學 : 點我開啟
套件介紹 : 讓使用者可以自訂打造屬於自己專用的 Firefox 4 下拉功能選單輔助工具

套件名稱 : Quick Search Bar 2.1.11
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/quick-search-bar/
更新日期 : February 16, 2011
使用教學 : 點我開啟
套件介紹 : 讓使用者在使用 Firefox 4 的同時, 可以更快速的在搜尋列中針對不同資訊來套用對應的搜尋引擎來尋找資料

套件名稱 : Roomy Bookmarks Toolbar 1.1.6
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/roomy-bookmarks-toolbar/
更新日期 : March 24, 2011
使用教學 : 點我開啟
套件介紹 : 精簡書籤工具列的圖示訊息顯示, 在有限空間內透過顯示 Favicon (網址圖示) 來呈現更多網站連結

套件名稱 : Status-4-Evar 2011.04.06.18
套件網頁 : https://addons.mozilla.org/zh-TW/firefox/addon/status-4-evar/
更新日期 : April 8, 2011
使用教學 : 點我開啟
套件介紹 : 將瀏覽狀態列和附加元件列作結合, 使用者可以自訂顯示網頁瀏覽狀態, 並且避免顯示資訊和其他訊息出現重疊而造成混淆, 例如 Barlesque


最佳化設定
套件名稱 : FasterFox Lite 3.9.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/fasterfox-9148/
更新日期 : February 25, 2011
使用教學 : 點我開啟
套件介紹 : 提供使用者調整瀏覽器的網路效能設定

套件名稱 : PlacesCleaner 收藏庫清潔工 0.40
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/placescleaner/
更新日期 : December 15, 2010
使用教學 : 點我開啟
套件介紹 : 定期清理 places.sqlite 裡頭的無效歷史瀏覽資訊, 保持 Firefox 收藏庫運作的更快更有效率


個人偏好
套件名稱 : CheckPlaces 2.4.5
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/checkplaces/
更新日期 : March 18, 2011
使用教學 : 點我開啟
套件介紹 : 檢查書籤中無效連結或者重複標記的網頁

套件名稱 : Cutyfox URL Shortener (bit.ly, is.gd, goo.gl) 1.4.0
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/cutyfox-url-shortener-googl-is/
更新日期 : January 7, 2011
使用教學 : 點我開啟
套件介紹 : 方便易用的 goo.gl 短網址套用工具

套件名稱 : F.B. Purity- Clean Up Your Facebook Homepage
套件網頁 : https://addons.mozilla.org/en-US/firefox/addon/fb-purity-cleans-up-facebook/
更新日期 : March 18, 2011
使用教學 : 點我開啟
套件介紹 : 輔助使用者管理臉書過多無用的動態訊息

套件名稱 : Flagfox 4.1.1
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/flagfox/
更新日期 : March 9, 2011
使用教學 : 點我開啟
套件介紹 : 除了提供瀏覽網頁的基本資訊之外, 擴充套件本身同時提供為數眾多的網域查詢工具

套件名稱 : Locale Switcher 3
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/locale-switcher/
更新日期 : January 11, 2011
使用教學 : 點我開啟
套件介紹 : 使用社群火狐社群版本必備的語系切換輔助工具

套件名稱 : Google Reader Watcher 1.3.6
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/google-reader-watcher/
更新日期 : January 8, 2011
使用教學 : 點我開啟
套件介紹 : 定期幫使用者檢查 Google Reader 是否有新聞章, 並在狀態列顯示目前尚未閱讀文章數目

套件名稱 : Google Redesigned 0.6
套件網頁 : https://addons.mozilla.org/zh-tw/firefox/addon/google-redesigned/
更新日期 : January 11, 2011
使用教學 : 點我開啟 套件介紹 : 美化 Google Reader、Gmail、Gdoc 以及 Gcal 的使用者介面

套件名稱 : Yet Another Smooth Scrolling 3.0.16
套件網頁 : https://addons.mozilla.org/zh-TW/firefox/addon/yet-another-smooth-scrolling/
更新日期 : January 13, 2011
使用教學 : 點我開啟
套件介紹 : 透過適當的演算法, 讓使用者在捲動網頁內容時, 能夠更順暢更適合閱讀

POI 感想序

筆者最近一直在玩POI套件,學著把讀檔、寫檔…

POI是一個強大的套件啊!

不過,目前看來對 word的支援還沒有太好,

excel的支援則是比word多還不錯,但excel 的 chart除外。

改天,來分享一下 POI的使用。

我還把它包起來,可以更容易的讀取 excel,但是對於製定表格value object 就沒辦法了。

格式太多,太雜,很難一一定下來,只好作罷。

倒是有寫對 excel table title parse 的方法。

希望對於讀excel 檔案時,可以更易於使用。

寫於 2011/5/24

2011年1月26日 星期三

[轉貼]SVN 使用安裝教學文章

svn是寫專案的人必備。

詳細安裝教學:
-----------
SVN (Subversion 、TortoiseSVN)設定大全
點我前往