鍏跺疄寰堟棭灝卞嚭鐜板湪紼嬪簭鍛樼殑瑙嗛噹錛屽彧鏄叧娉ㄧ殑姣旇緝灝戯細@Override銆丂SuppressWarnings("unchecked")錛屽紑濮嬩富瑕佽寰楁病浠涔堢敤澶勶紝鍚庢潵鍏徃鐨勬鏋剁敤鍒板畠錛屾劅瑙夎繕涓嶉敊銆傘備簬鏄潵涓璁幫細
鍦ㄧ綉涓婃悳Annotation鐨勫涔犺祫鏂欎笉鏄緢澶氾紝榪樻槸鐢ㄧ殑浜轟笉澶?img src="/CuteSoft_Client/CuteEditor/images/emembarrassed.gif" alt="" align="absmiddle" border="0" />錛屾瘮杈冪粡鍏哥殑鍏ラ棬灝辨槸榪欎釜錛?a target="_blank" title="瀹炴垬綃囷細璁捐鑷繁鐨凙nnotation" >瀹炴垬綃囷細璁捐鑷繁鐨凙nnotation錛屽緢娓呮錛岄氫織鏄撴噦錛岃繖閲屾垜灝變笉璧樿堪浜嗐傜劧鑰屼粎浠呮槸寮勬噦瀹冩槸鎬庝箞鍥炰簨錛屽叿浣撹繕鏄病浠涔堢敤澶勶紝榪欎篃鏄ぇ澶氭暟寮鍙戜漢鍛樼殑鎰熻銆?br />
鍦ㄧ幇鍦ㄧ殑鍏徃鐨勭粡鍘嗕袱嬈℃鏋跺崌綰э紝絎竴嬈℃病鏈夌敤鍒癆nnotation錛寈ml閰嶇疆鏂囦歡澶ц鍏墮亾錛欰ction璺寵漿銆両batis sqlmapper銆丗orm琛ㄥ崟(鎴戜滑鐨勮〃鍗曢兘鏄粠鍚庡彴鐢熸垚鐨?錛屾暣涓」鐩畑ml鐪艱姳緙貢錛屾瘡涓ā鍧楅兘鏈夎嚜宸變笓灞炵殑閰嶇疆鏂囦歡錛岀劧鍚庨泦涓埌涓璧峰鐞嗭紝鑰屾垜浠渶鐥涜嫤鐨勮帿榪囦簬鍐欓偅澶ч噺閲嶅鐨勯厤緗枃浠躲?br />
鍚庢潵鍏徃鎺ヤ簡涓狤RP鐨勫崟瀛愶紝鎶鏈葷洃椹笂鎰忚瘑鍒版鏋惰鍗囩駭浜嗭紝浠栨妧鏈緢鐗涳紝鎴戜滑鍏徃鐨勬鏋跺氨鏄粬涓浜哄啓鐨勶紝涓ゅ懆涔嬪悗錛屾柊妗嗘灦鍑虹倝錛寈ml鍙繚鐣欎笁鍒嗕箣涓錛欰ction璺寵漿銆丗orm琛ㄥ崟閮戒笉鍐嶄嬌鐢▁ml閰嶇疆錛岃屾槸Annotation妯┖鍑轟笘錛岀粰鎴戠殑鎰熻錛氬畠灝卞儚涓涓晳涓栦富錛岃鎴戜滑鐨勬鏋墮噸鐢燂紝瀹冨氨鏄繖嬈″崌綰х殑鏈澶т寒鐐癸紝鍙湁sqlmapper渚濈劧淇濈暀錛岃繖鏃犲彲鍘氶潪錛屽洜涓哄畠鍘熸湰鏄痠batis灝佽鐨勶紝Action鎺у埗鍣ㄦ棦涓嶆槸Struts1錛孲truts2錛屼篃涓嶆槸Webwork錛屾槸鎬葷洃鑷繁灝佽鐨凷ervlet錛孎orm琛ㄥ崟閮界敱鍚庡彴鐢熸垚js緇勪歡鎶涘埌鍓嶇錛岄氳繃鍙嶇紪璇戠湅鍒版簮鐮侊紝鍏跺疄榪樻槸寰堝熀紜鐨勶紝璐翠簺浠g爜涓婃潵鐪嬩笅鍚э細
1.Action璇鋒眰閮ㄥ垎錛?br />
/**
* 鏄劇ず鏂板欏甸潰
* author YuWenLin
* date 2010-5-13 涓婂崍10:31:57
* @param data
*/
@Action("/add.shtml")
@Permission("client.ContractType.add")
public void add(ActionData data){
FormBuilder builder = data.getService(FormBuilder.class);
builder.append(Type.class);
builder.setAction("client/contract/type/add.do");
data.put("script", builder);
//鍚戦〉闈㈡姏鍑篶ookie鎻愮ず淇℃伅
MessageUtil.putMessage(data);
data.setResulter("template");
data.setPath("client/contract/type/type.shtml");
}
鍙兘澶у鐪嬪緱涓嶅お鏄庣櫧(姣忎釜鍏徃閮芥湁鑷繁妗嗘灦)錛屾病鏈夊叧緋伙紝灝變袱鍙ワ細
@Action("/add.shtml")
瀹冨氨鏄礋璐h姹傛樉紺烘柊澧炵殑欏甸潰錛屽氨榪欎竴鍙ワ紝涓嶉渶瑕佸儚鎴戜滑浠ュ墠鐨刟ction.xml(綾諱技Struts2鐨勮煩杞?錛屽共鍑鍒╃儲鍚э紝褰撶劧搴曞眰鍚庡彴鏈夊鐞嗭紝浣嗘槸鍏叡鐨勶紝涓嶉渶鎴戜滑綆★紝鑷充簬
@Permission("client.ContractType.add")
灝辨槸鐢ㄦ潵澶勭悊鏉冮檺綆$悊鐨勶紝涔熸槸Annotation鐨勪嬌鐢紝灝辮繖涓鍙ャ傚氨鏉冮檺綆$悊錛屽悗闈㈡垜涔熶細璁拌堪銆傘傘?br />
2.鍐嶆潵鐪嬬湅@Action搴曞眰鐨勫畾涔夛細
package org.plugbase.action;
import java.lang.annotation.Annotation;
public interface Action
extends Annotation
{
public abstract String value();
}
璇存槑涓嬶細extends Annotation璺?@interface鏄竴鏍風殑鏁堟灉錛屽彧涓嶈繃鍓嶈呮墜鍔╡xtends錛屽悗鑰呰嚜鍔ㄧ殑銆?br />
鎬庝箞鏍鳳紝寰堝熀紜鍚э紝璺焜dk婧愮爜鏄竴鏍風殑銆傘傘?br />
3.JavaBean鐢熸垚琛ㄥ崟錛?br />
@Widget(value="TextBox")
@Valider({"notempty","len(2,8)"})
public void setName(String name) {
this.name = name;
}
緇檚etter鏂規硶鍔燗nnotation錛孈Widget鏄粍浠訛紝@Valider鏄獙璇?br />
鎰忔濆氨鏄粰name瀛楁鐢熸垚TextBox緇勪歡錛屽茍鍋氶獙璇佸鐞嗭紝鍚庡彴鏈夌浉搴旂殑鍏叡js緇勪歡錛岄獙璇佹帶浠跺簱璋冪敤錛屾垜浠墍鏈夌殑琛ㄥ崟緇勪歡閮芥槸榪欐牱鐢熸垚鐨勶紝璇村疄璇濓紝榪欐牱鐢熸垚涓涓〉闈㈢湡鏈夌偣綣侀攣錛屾棦瑕佸啓js錛屽張瑕佸啓鍚庡彴錛屽墠绔繕瑕侀厤錛岃繕鐪熸槸鏈夋妧鏈惈閲忥紝鍛靛懙銆傘傘備絾鏄畠淇濊瘉涓鑷存э紝鎵鏈夎〃鍗曠粍浠訛紝楠岃瘉鎺т歡錛屽TextBox鎴戜滑鍙湁涓濂楋紝鎵鏈変漢閮藉幓璋冪敤榪欎竴濂楋紝涓嶅緱鍐嶉噸閫狅紝鍥犱負瀹冩槸妗嗘灦銆傘傘?br />
4.@Widget搴曞眰瀹氫箟錛?br />
import java.lang.annotation.Annotation;
public interface Widget
extends Annotation
{
public abstract String value();
public abstract String defaultValue();
public abstract String dataType();
public abstract String dataSource();
}
@Valider綾諱技錛屽綋鐒惰繖浜涢兘鍙槸瀹氫箟銆佸0鏄庯紝鍏蜂綋鎬庝箞鐢紝榪欓噷灝變笉璐翠簡錛屾瘯绔熸槸浜哄涓滆タ鍢?br />
鎬庝箞鏍鳳紝鐪嬪埌榪欎簺錛屼技涔庤寰桝nnotation寮濮嬭搗浣滅敤浜嗭紝鍏跺疄鎴戜竴鐩磋寰楋紝Annotation灝辨槸涓簒ml鎵鐢燂紝鍥犱負瀹冧滑淇╂槸姝誨澶達紝涓嶇鍗曚竴鍦扮敤璋侊紝閮芥湁緙洪櫡錛?br />
鍙湁緇撳悎鎵嶆槸瀹屽杽錛屾鎵璋擄紝娌℃湁鏈濂斤紝鍙湁鏇村ソ錛屽悎鐞嗗氨琛屻?br />
鍦ㄨ繖閲屾垜鍙兘娌℃湁璐村嚭浠涔園Annotation鎶鏈惈閲忕殑涓滆タ錛屼絾鏄垜鎯寵琛ㄨ揪鐨勬槸涓縐嶆濇兂錛屼竴縐嶆鏋剁殑鎬濇兂錛屽茍涓嶆槸浠涔堝湴鏂歸兘鑳界敤鍒癆nnotation錛屼竴鑸殑涓皬鍨嬮」鐩牴鏈病蹇呰鐢ㄥ畠錛屽洜涓簒ml灝辨悶瀹氾紝鎵浠ョ敤鍦ㄩ渶瑕佺敤鐨勫湴鏂癸紝灝嗗畠鐨勮兘閲忓彂鎸ュ埌鏈澶с傘傘?br />
浠ヤ笂浠呬負涓瀹朵箣璦錛屾榪庢媿鐮栥傘傘?br />

]]>