浜屻佸疄鐜頒簡modelDriven鎺ュ彛鍙互鍦╝ction涓洿鎺ヨ幏寰椾緥濡俇ser瀵硅薄錛屽畠浼氬皢Object getModel()鍙栧緱鐨刄ser鏀懼埌ValueStack涓傚彲浠ョ悊瑙d負灝嗚繖涓猆ser鐨勫睘鎬ц拷鍔犲埌Action涓傚畠涓昏鏄綔鐢ㄦ槸瀹炵幇綾諱技 Struts鐨凢ormBean鍔熻兘銆?/p>
鍦╯truts2涓紝鎻愪緵浜嗕竴縐嶇洿鎺ヤ嬌鐢ㄩ鍩熷璞$殑鏂瑰紡錛屽氨鏄action瀹炵幇com.opensymphony.xwork2.ModelDriven鎺ュ彛錛孧odelDriven璁╀綘鍙互鐩存帴鎿嶄綔搴旂敤紼嬪簭涓殑棰嗗煙瀵硅薄錛屽厑璁鎬綘鍦╳eb灞傚拰涓氬姟灞備嬌鐢ㄧ浉鍚岀殑瀵硅薄銆?/p>
ModelDriven鎺ュ彛鍙湁涓涓柟娉?/p>
public Object getModel() {
return null;
}
璇ユ柟娉曡繑鍥炰竴涓敤浜庢帴鏀剁敤鎴瘋緭鍏ユ暟鎹殑瀵硅薄妯″瀷錛屽湪榪欎釜妯″瀷瀵硅薄涓殑灞炴у彲浠ョ洿鎺ラ氳繃(灞炴у悕)userName鏉ヨ闂紝鑰屼笉闇瑕佷嬌鐢紙瀵硅薄鍚?灞?鎬у悕錛塽ser.userName榪欑鏍煎紡鏉ヨ闂簡錛屽湪action涔熶笉闇瑕佸瀵硅薄鎻愪緵getter鍜宻etter鏂規硶浜嗭紝浣嗘槸蹇呴』瑕佸湪action涓繘 琛宯ew鎿嶄綔
濡備笅
// ModelDriven瑕佷嬌鐢ㄦ硾鍨嬪摝
public class LoginAction extends ActionSupport implements ModelDriven<User>{
private static final long serialVersionUID = -6434128483294080524L;
//榪欓噷蹇呴』瑕乶ew
private User user=new User();
public String login() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
//榪欓噷鏄疄鐜版帴鍙f柟娉?/p>
@Override
public User getModel() {
// TODO Auto-generated method stub
//鍒繕璁頒簡錛岃鎶婅繑鍥炲煎啓涓婂摝
return user;
}
}
榪欐牱涓涓狹odelDriven灝卞疄鐜板畬姣曚簡
鍜屽睘鎬ч┍鍔ㄧ殑Action鏈夊緢澶х殑鍖哄埆錛屼笅闈竴涓鍒椾婦錛?/p>
錛?錛夋ā鍨嬮┍鍔ㄧ殑Action蹇呴』瀹炵幇ModelDriven鎺ュ彛錛岃屼笖瑕佹彁渚涚浉搴旂殑娉涘瀷錛岃繖閲屽綋鐒跺氨鏄叿浣撲嬌鐢ㄧ殑Java Bean浜嗐?/p>
錛?錛夊疄鐜癕odelDriven鐨刧etModel鏂規硶錛屽叾瀹炲氨鏄畝鍗曠殑榪斿洖娉涘瀷鐨勪竴涓璞°?/p>
錛?錛夊湪Action鎻愪緵涓涓硾鍨嬬殑縐佹湁瀵硅薄錛岃繖閲屽氨鏄畾涔変竴涓猆ser鐨剈ser瀵硅薄錛屽茍鎻愪緵鐩稿簲鐨刧etter涓巗etter銆?/p>
濂戒簡錛屼笂闈㈢殑涓変歡浜嬪仛瀹屼箣鍚庯紝Action灝變細鍘昏嚜鍔ㄨ皟鐢║ser鐨剆etter灝嗚〃鍗曚腑鐨刵ame灞炴х殑鍊艱祴緇橴ser涓殑灞炴с傝孉ction鐨勫悗緇鐞嗙殑Jsp欏甸潰鍚庤呮槸Servlet灝卞彲浠ヤ嬌鐢╱ser瀵硅薄浜嗐?/p>
鍒板簳鏄敤灞炴ч┍鍔ㄥ拰鏄ā鍨嬮┍鍔ㄥ憿錛?
榪欎釜闂鍥版壈浜嗗緢澶歋truts2鐨勫垵瀛﹁咃紝鎴戣繖閲屾彁渚涗竴浜涘緩璁細
錛?錛夎浣犵粺涓鏁翠釜緋葷粺涓殑Action浣跨敤鐨勯┍鍔ㄦā鍨嬶紝鍗寵涔堥兘鏄敤灞炴ч┍鍔紝瑕佷箞閮芥槸鐢ㄦā鍨嬮┍鍔ㄣ?/p>
錛?錛夊鏋滀綘鐨凞B涓殑鎸佷箙灞傜殑瀵硅薄涓庤〃鍗曚腑鐨勫睘鎬ч兘鏄竴涓瀵瑰簲鐨勮瘽錛岄偅涔堝氨浣跨敤妯″瀷椹卞姩鍚э紝姣曠珶鐪嬭搗鏉ヤ唬鐮佽鏁存磥寰楀銆?/p>
錛?錛夊鏋滆〃鍗曠殑灞炴т笉鏄竴涓瀵瑰簲鐨勮瘽錛岄偅涔堝氨搴旇浣跨敤灞炴ч┍鍔紝鍚﹀垯錛屼綘鐨勭郴緇熷氨蹇呴』鎻愪緵涓や釜Bean錛屼竴涓搴旇〃鍗曟彁浜ょ殑鏁版嵁錛屽彟涓涓敤涓庢寔涔呭眰銆?/p>