
2006年11月29日
一、el
var el =
Ext.get('例如:formname');
var map = new
Ext.KeyMap(el, {
key:
Ext.EventObject.
ENTER,
fn: function(){
event.keyCode=9;
}
});
二、EditGrid,需修改源碼
onEditorKey:function (F, E) {
var C = E.getKey(), G, D = this.grid, B = D.activeEditor;
var A = E.shiftKey;
if (C == E.TAB) {
E.stopEvent();
B.completeEdit();
if (A) {
G = D.walkCells(B.row, B.col - 1, -1, this.acceptsNav, this);
} else {
G = D.walkCells(B.row, B.col + 1, 1, this.acceptsNav, this);
}
} else {
if (C == E.ENTER) {
E.stopEvent();
B.completeEdit();
if (this.moveEditorOnEnter !== false) {
if (A) {
//G
= D.walkCells(B.row - 1, B.col, -1, this.acceptsNav,this)
G = D.walkCells(B.row, B.col - 1, -1, this.acceptsNav, this);
} else {
// G
= D.walkCells(B.row + 1, B.col, 1, this.acceptsNav,this)
G = D.walkCells(B.row, B.col + 1, 1, this.acceptsNav, this);
}
}
} else {
if (C == E.ESC) {
B.cancelEdit();
}
}
}
if (G) {
D.startEditing(G[0], G[1]);
}
}
posted @
2008-08-24 12:14 jinn 閱讀(2712) |
評論 (4) |
編輯 收藏
摘要: Webservice交互中需要雙方約定數據格式,用XML表示數據庫記錄是不錯的選擇。
先定義個DTD:
<!--
DTD for the Xml-Format-String used to transmit business data
-->
<!-- The "DBSET" element is the root of...
閱讀全文
posted @
2008-07-18 15:13 jinn 閱讀(2050) |
評論 (1) |
編輯 收藏
Webservice交互經常需要驗證用戶,用戶名和密碼的傳遞采用SOAPHeader傳遞不失為一種好辦法。在Axis1中設置很簡單:
客戶端:
((org.apache.axis.client.Call) call).addHeader(new SOAPHeaderElement("Authorization","username",username));
((org.apache.axis.client.Call) call).addHeader(new SOAPHeaderElement("Authorization","password",password));
經包裝后傳遞的內容如下
<soapenv:Header>
<ns1:username
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string"
xmlns:ns1="Authorization"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
admin
</ns1:username>
<ns2:password
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:string"
xmlns:ns2="Authorization"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
1
</ns2:password>
</soapenv:Header>
服務端通過Handler取得用戶名和密碼進行驗證:
username = (String) messageContext.getRequestMessage().getSOAPEnvelope()
.getHeaderByName("Authorization","username").getValue();
password = (String) messageContext.getRequestMessage().getSOAPEnvelope()
.getHeaderByName("Authorization","password").getValue();
如果覺得這樣不安全,可雙方約定一種加密解密規則,將用戶名和密碼加密后進行傳輸。
我曾試過使用如下方法,
客戶端:
((org.apache.axis.client.Call) call).setUsername(username);
((org.apache.axis.client.Call) call).setPassword(password);
包裝后傳遞內容(多了最后一句:Authorization: Basic emphZG1pbjox。Axis將用戶名和密碼經Base64加密后傳遞):
POST /web/services/GenericServer HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: localhost:8083
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 807
Authorization: Basic emphZG1pbjox
服務端的Handle:
username =messageContext.getUsername();
password = messageContext.getPassword();
這樣是沒問題,看起來更簡單。可惜調用部署在weblogic上的ws時,會被weblogic攔截,必須在weblogic安全域中配置相應的用戶才能通過驗證,這不是我們所需要的,通常我們有自己的用戶管理機制,調用WS的用戶也作為系統中的一個用戶納入我們的管理,而不是跟weblogic安全域用戶綁在一起。
posted @
2008-07-18 13:18 jinn 閱讀(5935) |
評論 (1) |
編輯 收藏
摘要: Jacob的下載、配置就不說了,提醒下,官方的提供的17版本似乎不支持jdk1.5,得下載19版的(CSDN上有)。
研究這個的目的是想用java生成符合格式的word文檔,文檔內容大體上有三種格式,Heading1、Heading2和Normal,在word的文檔結構圖顯示的樣子如下
Heading 1
Heading 2
H...
閱讀全文
posted @
2008-07-18 11:21 jinn 閱讀(4678) |
評論 (4) |
編輯 收藏
摘要: 2007,也許會有危險,也許會有障礙,所以......
閱讀全文
posted @
2006-12-31 15:18 jinn 閱讀(362) |
評論 (0) |
編輯 收藏
alphal 內部測試版
beta 外部測試版
demo 演示版
Enhance 增強版或者加強版 屬于正式版
Free 自由版
Full version 完全版 屬于正式版
shareware 共享版
Release 發行版 有時間限制
Upgrade 升級版
Retail 零售版
Cardware 屬共享軟件的一種,只要給作者回復一封電郵或明信片即可。(有的作者并由此提供注冊碼等),目前這種形式已不多見。
Plus 屬增強版,不過這種大部分是在程序界面及多媒體功能上增強。
Preview 預覽版
Corporation & Enterprise 企業版
Standard 標準版
Mini 迷你版也叫精簡版只有最基本的功能
Premium -- 貴價版
Professional -- 專業版
Express -- 特別版
Deluxe -- 豪華版
Regged -- 已注冊版
CN -- 簡體中文版
CHT -- 繁體中文版
EN -- 英文版
Multilanguage -- 多語言版
?
?
posted @
2006-12-15 18:56 jinn 閱讀(472) |
評論 (2) |
編輯 收藏
static:用來修飾字段和方法。
通常情況下,我們通過創建類的對象來訪問其字段和方法,而將字段或方法聲明為static意味著這個字段或方法作為整個類而不是類的某個特定對象而存在,可以通過類名直接引用它們。
一個static字段對每個類來說都只有一份存儲空間,而非static字段則是對每個對象有一份存儲空間。
static方法的一個重要用法就是不用創建對象而通過類直接引用它。
final:用來修飾字段、方法和類。
final修飾字段。對于基本類型,final使數值恒定不變,而對于對象引用,final使引用恒定不變,一旦引用被初始化指向一個對象,就無法把它改為指向另一個對象,然而,對象其本身是可以被修改的。
一個既是static又是final的字段只占據一段不能改變的存儲空間。
帶有恒定初始值(即,編譯時常量)的static final基本類型全用大寫字母命名,并且字與字之間用下劃線隔開。
空白final是指聲明為final但又未給定初值的字段,這個字段在運行時初始化,并在以后保持恒定不變。
final參數意味著你無法在方法中更改參數引用所指向的對象,你可以引用參數,但無法改變它。
???
final修飾方法。使用final方法的原因有兩個,第一個原因是把方法鎖定,以防任何繼承類來修改它的含義。這個出于設計的考慮:想要保證在繼承中使方法行為保持不變,并且不會被覆蓋。
使用final方法的第二個原因是效率。如果將一個方法指定為final,就是同意編譯器將針對改方法的所有調用都轉為內嵌調用,而編譯器會根據開銷情況明智的抉擇是否對final方法執行內嵌調用。
類中的所有private方法都隱式的指定為final的。
final修飾類。將某個類定義為final表明該類不能被繼承。
final類的字段可以根據個人的意愿選擇是或不是final,不論類是否定義為final,相同的規則都適用與final字段。
而final類的所有方法都隱式的指定為final的。
posted @
2006-12-04 01:22 jinn 閱讀(690) |
評論 (0) |
編輯 收藏
public、protected和private做為java訪問權限修飾詞而使用。
首先要明白,java中的每個定義(定義類、字段和方法)都有特定的訪問權限。如果不加修飾詞,則默認為包訪問權限,即包內的類對其有訪問權限。
對于類成員(字段和方法)的訪問權限來說,
public:所有類都可訪問。
protected:繼承訪問權限。基類通過protected把訪問權限賦予派生類而不是所有類,
另外,protected也提供包訪問權限,也就是說,相同包內的其他類可以訪問protected元素。
private:除了包含這個成員的類外,其他任何類都無法訪問這個成員。
對于類訪問權限來說,
僅有兩個選擇:包訪問權限或public。
類既不可以是private的,也不可以是protected的,但內部類是個特例,一個內部類可以是private或protected的。
posted @
2006-12-01 00:26 jinn 閱讀(5562) |
評論 (0) |
編輯 收藏
class:用class關鍵字創建新的類,例如:
class
?AClassName
{

??
/**/
/*
Class?body?goes?here?
*/
}
修飾class的詞有public,abstract和final,其中abstract和final不能同時修飾class。內部類還可以用private或protected來修飾class。
可以在類中設置兩種類型的元素:字段和方法,統稱為類的成員。
類、源文件以及編譯后文件:一個java源代碼文件(通常被稱為編譯單元)內可以有一個且只能有一個public類,該類的名稱必須與文件的名稱相同(包括大小寫,但不包括文件的后綴名:.java)。當編譯一個.java文件時,在.java文件中的每個類都會有一個跟類名相同的.class輸出文件。
雖然不是很常用,但編譯單元內完全沒有public類也是可能的,在這種情況下可以隨意為文件命名。
package:為了唯一標識每個類并分組,java使用了package的概念。同時,將邏輯上相關的類放在同一個包中,可以使程序結構更為清楚。你要做的就是在java文件開頭加一行
package
?mypackage ;
注意package 語句必須是文件中的第一行非注釋的程序代碼。
按照慣例,package名稱的第一部分為類創建者的Internet域名的倒序,這樣有利于包名的唯一性。
無論何時創建包,在指定包的名稱的同時隱含的指定了目錄結構。
注意包沒有嵌套或包含關系,a包和a.b包對java命令來說是并列的兩個包。
import: 用import關鍵字導入程序庫,使之成為可用的單元。
java.lang包中的類是默認導入的。
在一個類中使用其他包的類時可以用全稱來指定,如java.util.ArrayList(這樣就不用import語句了),也可以僅指定為ArrayList(緣于import)。
posted @
2006-11-30 00:27 jinn 閱讀(2367) |
評論 (0) |
編輯 收藏
<<Java Language Specification>>列出了java關鍵字、保留關鍵字,
并舉例說明true,false和null都不是java的keywords,而是literals ,盡管他們看起來很像是keywords。
3.9 Keywords
The following character sequences, formed from ASCII letters, are reserved for use as keywords and cannot be used as identifiers (§3.8):
Keyword: one of
abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized
The keywords const
and goto
are reserved, even though they are not currently used. This may allow a Java compiler to produce better error messages if these C++ keywords incorrectly appear in programs.
While true
and false
might appear to be keywords, they are technically Boolean literals (§3.10.3). Similarly, while null
might appear to be a keyword, it is technically the null literal (§3.10.7).
3.10 Literals
A literal is the source code representation of a value of a primitive type (§4.2), the String
type (§4.3.3), or the null type (§4.1):
Literal:
IntegerLiteral
FloatingPointLiteral
BooleanLiteral
CharacterLiteral
StringLiteral
NullLiteral
?
posted @
2006-11-29 23:57 jinn 閱讀(2183) |
評論 (0) |
編輯 收藏
軟回車(Soft Return):軟回車是在字處理程序中作為自動移行功能的一部分自動插入的,也叫換行符,在word中看不見。如果文本一行的長度超過文檔所定義的右邊距時,即當前行沒有足夠的空間放置下一個字符時,文字處理軟件將在這一行文本的末尾自動插入一個軟回車符,文本另起一行。這個軟回車符是由編輯程序自動產生的,叫做軟回車。當重新設置文檔的右邊距并做重新排版時,軟回車出現的位置就會自動改變。
在網頁中按Shift+Enter(回車鍵)為軟回車。↓
硬回車(Hard Return):硬回車是段落標記,表示一個段落,也稱回車符。硬回車是用戶鍵入的回車符,它是實際插入正文的符號。它通常包括兩個字符,即分別表示回車和換行。如果要在文本段落的末端換行或者在文本中增加空行,可按回車鍵。硬回車是文件的一部分,它不能自動消除,除非刪除它。
按Enter(回車鍵)為硬回車。
簡言之,軟回車是字處理軟件為了換行自動插入的,而硬回車是用戶按Enter鍵鍵入的回車符,是實際插入正文的符號,是文件的一部分。
java轉義字符:
\ddd 1到3位8進制數據所表示的字符(ddd)
\uxxxx 1到4位16進制數所表示的字符(xxxx)
\' 單引號字符
\\ 反斜杠字符
\r 回車
\n 換行
\f 走紙換頁
\t 橫向跳格
\b 退格
java中可以用兩種方法表示硬回車:
一.\r\n
二.System.getProperty("line.separator")
posted @
2006-11-29 13:30 jinn 閱讀(6969) |
評論 (2) |
編輯 收藏