锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成在人线电影天堂色,日本亚洲色大成网站www久久,亚洲精品麻豆avhttp://www.tkk7.com/jjshcc/category/45366.htmlzh-cnSun, 02 Sep 2012 20:34:21 GMTSun, 02 Sep 2012 20:34:21 GMT60OGNL琛ㄨ揪寮弒truts2鏍囩鈥?錛?錛?鈥濈殑鍖哄埆http://www.tkk7.com/jjshcc/archive/2012/09/02/386814.htmlEric_jiangEric_jiangSun, 02 Sep 2012 13:12:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/09/02/386814.htmlhttp://www.tkk7.com/jjshcc/comments/386814.htmlhttp://www.tkk7.com/jjshcc/archive/2012/09/02/386814.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386814.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386814.html
OGNL錛圤bject-Graph Navigation Language錛夛紝澶ф鍙互鐞嗚В涓猴細(xì)瀵硅薄鍥懼艦鍖栧鑸璦銆傛槸涓縐嶅彲浠ユ柟渚垮湴鎿嶄綔瀵硅薄灞炴х殑寮婧愯〃杈懼紡璇█銆侽GNL鏈夊涓嬬壒鐐癸細(xì)

1銆佹敮鎸佸璞℃柟娉曡皟鐢紝褰㈠紡濡傦細(xì)objName.methodName()錛?br />
2銆佹敮鎸佺被闈欐佺殑鏂規(guī)硶璋冪敤鍜屽艱闂紝琛ㄨ揪寮忕殑鏍煎紡涓篅[綾誨叏鍚嶏紙鍖呮嫭鍖呰礬錛塢@[鏂規(guī)硶鍚?| 鍊煎悕]錛屼緥濡傦細(xì)

@java.lang.String@format('foo %s', 'bar')鎴朄tutorial.MyConstant@APP_NAME錛?br />
3銆佹敮鎸佽祴鍊兼搷浣滃拰琛ㄨ揪寮忎覆鑱旓紝渚嬪錛?br />
price=100, discount=0.8, calculatePrice()錛岃繖涓〃杈懼紡浼?xì)杩斿?0錛?br />
4銆佽闂甇GNL涓婁笅鏂囷紙OGNL context錛夊拰ActionContext錛?br />
5銆佹搷浣滈泦鍚堝璞°?br />


浜屻佷嬌鐢∣GNL琛ㄨ揪寮?br />
OGNL瑕佺粨鍚坰truts鏍囩鏉ヤ嬌鐢ㄣ傜敱浜庢瘮杈冪伒媧伙紝涔熷鏄撴妸浜虹粰寮勬檿錛屽挨鍏舵槸“%”銆?#8220;#”銆?#8220;$”榪欎笁涓鍙風(fēng)殑浣跨敤銆傜敱浜?騫挎硾搴旂敤浜嶦L涓紝榪欓噷閲嶇偣鍐?鍜?絎﹀彿鐨勭敤娉曘?br />
1銆?#8220;#”絎﹀彿鏈変笁縐嶇敤閫旓細(xì)

(1)銆佽闂潪鏍瑰璞★紙struts涓兼爤涓烘牴瀵硅薄錛夊OGNL涓婁笅鏂囧拰Action涓婁笅鏂囷紝#鐩稿綋浜嶢ctionContext.getContext()錛涗笅琛ㄦ湁鍑犱釜ActionContext涓湁鐢ㄧ殑灞炴э細(xì)

parameters
鍖呭惈褰撳墠HTTP璇鋒眰鍙傛暟鐨凪ap
#parameters.id[0]浣滅敤鐩稿綋浜巖equest.getParameter("id")

request
鍖呭惈褰撳墠HttpServletRequest鐨勫睘鎬э紙attribute)鐨凪ap
#request.userName鐩稿綋浜巖equest.getAttribute("userName")

session
鍖呭惈褰撳墠HttpSession鐨勫睘鎬э紙attribute錛夌殑Map
#session.userName鐩稿綋浜巗ession.getAttribute("userName")

application
鍖呭惈褰撳墠搴旂敤鐨凷ervletContext鐨勫睘鎬э紙attribute錛夌殑Map
#application.userName鐩稿綋浜巃pplication.getAttribute("userName")


娉細(xì)attr 鐢ㄤ簬鎸塺equest > session > application欏哄簭璁塊棶鍏跺睘鎬э紙attribute錛夛紝#attr.userName鐩稿綋浜庢寜欏哄簭鍦ㄤ互涓婁笁涓寖鍥達(dá)紙scope錛夊唴璇誨彇 userName灞炴э紝鐩村埌鎵懼埌涓烘銆傜敤浜庤繃婊ゅ拰鎶曞獎(jiǎng)錛坧rojecting)闆嗗悎錛屽books.{?#this.price<100}錛涙瀯閫?Map錛屽#{'foo1':'bar1', 'foo2':'bar2'}銆?br />
(2)銆佺敤浜庤繃婊ゅ拰鎶曞獎(jiǎng)錛坧rojecting)闆嗗悎錛屽: books.{?#this.price>35}

books.{?#this.price>35}

(3)銆佹瀯閫燤ap錛屽: #{'foo1':'bar1', 'foo2':'bar2'}

#{'foo1':'bar1', 'foo2':'bar2'}榪欑鏂瑰紡甯哥敤鍦ㄧ粰radio鎴杝elect銆乧heckbox絳夋爣絳捐祴鍊間笂銆傚鏋滆鍦ㄩ〉闈腑鍙栦竴涓猰ap鐨勫煎彲浠ヨ繖鏍峰啓錛?br />
<s:property value="#myMap['foo1']"/>

<s:property value="#myMap['foo1']"/>

2銆?#8220;%”絎﹀彿鐨勭敤閫旀槸鍦ㄦ爣絳劇殑灞炴у艱鐞嗚В涓哄瓧絎︿覆綾誨瀷鏃訛紝鍛婅瘔鎵ц鐜%{}閲岀殑鏄疧GNL琛ㄨ揪寮忋傚緢鏈夌偣綾諱技javascript閲岄潰鐨別val_r()鍔熻兘錛屼緥濡傦細(xì)

var oDiv = eval_r("document.all.div"+index)

var oDiv = eval_r("document.all.div"+index)

褰搃ndex鍙橀噺涓?鏃訛紝璇彞灝變細(xì)琚綋浣渧ar oDiv = document.all.div1
var oDiv = document.all.div1鏉ユ墽琛屻?{}灝辨槸璧瘋繖涓綔鐢ㄣ備婦渚嬶細(xì)

<s:set name="myMap" value="#{'key1':'value1','key2':'value2'}"/> 絎?琛?br />
<s:property value="#myMap['key1']"/> 絎?琛?br />
<s:url value="#myMap['key1']" /> 銆銆銆絎?琛?br />
<s:set name="myMap" value="#{'key1':'value1','key2':'value2'}"/> 絎?琛?br />
<s:property value="#myMap['key1']"/> 絎?琛?br />
<s:url value="#myMap['key1']"/> 絎?琛?br />
涓婇潰鐨勪唬鐮佺2琛屼細(xì)鍦ㄩ〉闈笂杈撳嚭“value1”錛岃岀3琛屽垯浼?xì)杈撳?#myMap['key1']"榪欎箞涓涓瓧絎︿覆銆傚鏋滃皢絎?琛屾敼鍐欐垚榪欐牱錛?br />
<s:url value="%{#myMap['key1']}"/>

<s:url value="%{#myMap['key1']}"/>

鍒欒緭鍑轟負(fù)“value1”銆?br />




榪欒鏄巗truts2閲屼笉鍚岀殑鏍囩瀵筼gnl鐨勮〃杈懼紡鐨勭悊瑙f槸涓嶄竴鏍風(fēng)殑銆傚鏋滃綋鏈夌殑鏍囩“鐪嬩笉鎳?#8221;綾諱技“#myMap['key1']”鐨勮鍙ユ椂錛屽氨瑕佺敤%{}鏉ユ妸榪欐嫭榪涘幓錛?#8220;緲昏瘧”涓涓嬩簡銆?br />
3銆?#8220;$”鏈変袱縐嶇敤閫?br />
(1)銆佸湪鍥介檯鍖栬祫婧愭枃浠朵腑錛屽紩鐢∣GNL琛ㄨ揪寮忋?br />
(2)銆佸湪Struts 2閰嶇疆鏂囦歡涓紝寮曠敤OGNL琛ㄨ揪寮忥細(xì)

<action name="saveUser" class="userAction" method="save">

<result type="redirect">listUser.action?msg=${msg}</result>

</action>

<action name="saveUser" class="userAction" method="save">

<result type="redirect">listUser.action?msg=${msg}</result>

</action>


]]>
Struts2鐨勫浗闄呭寲 http://www.tkk7.com/jjshcc/archive/2012/09/01/386773.htmlEric_jiangEric_jiangSat, 01 Sep 2012 15:16:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/09/01/386773.htmlhttp://www.tkk7.com/jjshcc/comments/386773.htmlhttp://www.tkk7.com/jjshcc/archive/2012/09/01/386773.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386773.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386773.htmlStruts2鐨勫浗闄呭寲
璧勬簮鏂囦歡鐨勫懡鍚嶏細(xì)basename_language_country.properties
JAVA鍥介檯鍖?br />濡傛灉緋葷粺鍚屾椂瀛樺湪璧勬簮鏂囦歡銆佺被鏂囦歡錛岀郴緇熷皢浠ョ被鏂囦歡涓轟富錛岃屼笉浼?xì)璋冪敤璧勬簮鏂囦欢銆?br />瀵逛簬綆浣撲腑鏂囩殑Locale錛孯esourceBundle鎼滅儲(chǔ)璧勬簮鐨勯『搴忔槸錛?br />(1)baseName_zh_CN.class
(2)baseName_zh_CN.properties
(3)baseName_zh.class
(4)baseName_zh.properties
(5)baseName.class
(6)baseName.properties

 
Struts2鐨勫浗闄呭寲鍏ラ棬

Struts2鍥介檯鍖栨槸寤虹珛鍦↗ava鍥介檯鍖栫殑鍩虹涓婄殑錛屼竴鏍鋒槸閫氳繃鎻愪緵涓嶅悓鍥藉/璇█鐜鐨勬秷鎭祫婧愶紝鐒跺悗閫氳繃ResourceBundle
鍔犺澆鎸囧畾Locale瀵瑰簲鐨勮祫婧愭枃浠訛紝鍐嶅彇寰楄璧勬簮鏂囦歡涓寚瀹歬ey瀵瑰簲鐨勬秷鎭?-鏁翠釜榪囩▼涓嶫AVA紼嬪簭鐨勫浗瀹跺寲瀹屽叏鐩稿悓錛屽彧鏄?br />Struts2妗嗘灦瀵笿AVA紼嬪簭鍥介檯鍖栬繘琛屼簡榪涗竴姝ュ皝瑁咃紝浠庤岀畝鍖栦簡搴旂敤紼嬪簭鐨勫浗闄呭寲銆?br />Struts2闇瑕佸浗闄呭寲鐨勯儴鍒?br />綾誨瀷杞崲:
鏁版嵁鏍¢獙:
楠岃瘉妗嗘灦xml閰嶇疆鏂囦歡鐨勫浗闄呭寲錛歊egisterAction-validation.xml鏂囦歡<message key="username.xml.invalid"/>

JSP欏甸潰鐨勫浗闄呭寲錛?lt;s:text name="addUser"/>

Action鐨勫浗闄呭寲:鍒╃敤ActionSupport綾繪彁渚涚殑getText()鏂規(guī)硶.

 

Struts2涓姞杞藉叏灞璧勬簮鏂囦歡

struts.xml
<constant name="struts.custom.i18n.resources" value="baseName"/>
鎴?br />struts.properties
struts.custom.i18n.resources=baseName


璁塊棶鍥介檯鍖栨秷鎭?/p>

Struts2璁塊棶鍥介檯鍖栨秷鎭富瑕佹湁濡備笅涓夌鏂瑰紡錛?br />(1)JSP欏甸潰錛?lt;s:text name="key"/>
(2)Action綾諱腑錛氫嬌鐢ˋctionSupport綾葷殑getText鏂規(guī)硶銆?br />(3)琛ㄥ崟鍏冪礌鐨凩abel閲岋細(xì)涓鴻〃鍗曞厓绱犳寚瀹氫竴涓猭ey灞炴?/p>

杈撳嚭甯﹀崰浣嶇鐨勫浗闄呭寲娑堟伅

Struts2涓彁渚涗簡濡備笅涓ょ鏂瑰紡鏉ュ~鍏呮秷鎭瓧絎︿覆涓殑鍗犱綅絎?/p>

(1)JSP欏甸潰錛屽湪<s:text.../>鏍囩涓嬌鐢ㄥ涓?lt;s:param.../>鏍囩鏉ュ~鍏呮秷鎭腑鐨勫崰浣嶇銆?br />(2)Action涓紝鍦ㄨ皟鐢╣etText鏂規(guī)硶鏃朵嬌鐢╣etText(String aTextName,List args)鎴杇etText(String key, String[] args)鏂規(guī)硶鏉ュ~鍏呭崰浣嶇銆?br />闄ゆ涔嬪錛孲truts2榪樻彁渚涗簡瀵瑰崰浣嶇鐨勪竴縐嶆浛浠f柟寮忥紝榪欑鏂瑰紡鍏佽鍦ㄥ浗闄呭寲娑堟伅璧勬簮鏂囦歡涓嬌鐢ㄨ〃杈懼紡錛屽浜庤繖縐嶆柟寮忥紝鍒欏彲閬垮厤鍦ㄤ嬌鐢ㄥ浗闄呭寲娑堟伅鏃惰繕闇瑕佷負(fù)鍗犱綅絎︿紶鍏ュ弬鏁?/p>

鍊箋?/p>

濡備笅鍦ㄦ秷鎭祫婧愪腑浣跨敤琛ㄨ揪寮?br />succTip=${username}, 嬈㈣繋, 鎮(zhèn)ㄥ凡緇忕櫥褰?
鍦ㄤ笂闈㈢殑娑堟伅璧勬簮涓紝閫氳繃浣跨敤琛ㄨ揪寮忥紝鍙互浠嶸alueStack涓彇鍑鴻username灞炴у鹼紝鑷姩濉厖鍒拌娑堟伅璧勬簮涓?/p>

鍔犺澆璧勬簮鏂囦歡鐨勬柟寮?br />(1)鍔犺澆鍏ㄥ眬璧勬簮鏂囦歡錛?<constant name="struts.custom.i18n.resources" value="baseName"/>
(2)鍖呰寖鍥磋祫婧愭枃浠?錛氫負(fù)Struts2鎸囧畾鍖呰寖鍥磋祫婧愭枃浠剁殑鏂規(guī)硶鏄?鍦ㄥ寘鐨勬牴璺緞涓嬪緩绔嬪涓枃浠跺悕涓簆ackage_language_country.properties鐨勬枃浠訛紝涓鏃﹀緩绔嬩簡
   榪欎釜緋誨垪鐨勫浗闄呭寲璧勬簮鏂囦歡錛屽簲鐢ㄤ腑澶勪簬璇ュ寘涓嬬殑鎵鏈堿ction閮藉彲浠ヨ闂璧勬簮鏂囦歡銆傞渶瑕佹敞鎰忕殑鏄笂闈㈢殑鍖呰寖鍥磋祫婧愭枃浠剁殑baseName灝辨槸package錛屼笉鏄疉ction鎵鍦ㄧ殑鍖呭悕銆?br />(3)Action鑼冨洿璧勬簮鏂囦歡錛氬湪Action綾繪枃浠舵墍鍦ㄧ殑璺緞寤虹珛澶氫釜鏂囦歡鍚嶄負(fù)ActionName_language_country.properties鐨勬枃浠躲?br />(4)涓存椂鎸囧畾璧勬簮鏂囦歡錛?lt;s:i18n.../>鏍囩鐨刵ame灞炴ф寚瀹氫復(fù)鏃剁殑鍥介檯鍖栬祫婧愭枃浠?/p>

鍔犺澆璧勬簮鏂囦歡鐨勯『搴?br />Action涓姞杞借祫婧愭枃浠訛紝鍋囪鎴戜滑鍦ㄦ煇涓狢hildAction涓皟鐢ㄤ簡getText("user.title")錛孲truts 2.0鐨勫皢浼?xì)鎵ц浠ヤ笅鐨勬搷浣滃Q?br />(1)浼樺厛鍔犺澆緋葷粺涓繚瀛樺湪ChildAction鐨勭被鏂囦歡鐩稿悓浣嶇疆錛屼笖baseName涓篊hildAction鐨勭郴鍒楄祫婧愭枃浠躲?br />(2)濡傛灉鍦?1)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝涓擟hildAction鏈夌埗綾籔arentAction錛屽垯鍔犺澆緋葷粺涓繚瀛樺湪ParentAction鐨勭被鏂囦歡鐩稿悓浣嶇疆錛屼笖
   baseName涓篜arentAction鐨勭郴鍒楄祫婧愭枃浠躲?br />(3)濡傛灉鍦?2)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝涓擟hildAction鏈夊疄鐜版帴鍙ChildAction錛屽垯鍔犺澆緋葷粺涓繚瀛樺湪IChildAction鐨勭被鏂囦歡鐩稿悓浣嶇疆錛屼笖
   baseName涓篒ChildAction鐨勭郴鍒楄祫婧愭枃浠躲?br />(4)濡傛灉鍦?3)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝涓擟hildAction鏈夊疄鐜版帴鍙odelDriven(鍗充嬌鐢ㄦā鍨嬮┍鍔ㄦā寮?錛屽垯瀵逛簬getModel()鏂規(guī)硶榪斿洖鐨刴odel瀵硅薄錛?br />   閲嶆柊鎵ц絎?1)姝ユ搷浣溿?br />(5)濡傛灉鍦?4)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝鍒欐煡鎵懼綋鍓嶅寘涓媌aseName涓簆ackage鐨勭郴鍒楄祫婧愭枃浠躲?br />(6)濡傛灉鍦?5)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝鍒欐部鐫褰撳墠鍖呬笂婧紝鐩村埌鏈欏跺眰鍖呮潵鏌ユ壘baseName涓簆ackage鐨勭郴鍒楄祫婧愭枃浠躲?br />(7)濡傛灉鍦?6)涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝鍒欐煡鎵緎truts.custom.i18n.resources甯擱噺鎸囧畾baseName鐨勭郴鍒楄祫婧愭枃浠躲?br />(8)濡傛灉緇忚繃涓婇潰鐨勬楠や竴鐩存壘涓嶅埌key瀵瑰簲鐨勬秷鎭紝灝嗙洿鎺ヨ緭鍑鴻key鐨勫瓧絎︿覆鍊箋?/p>


瀵逛簬鍦↗SP涓闂浗闄呭寲娑堟伅錛屽垯綆鍗曠殑澶氾紝浠栦滑鍙堝彲浠ュ垎涓轟袱縐嶅艦寮忥細(xì)
(1)瀵逛簬浣跨敤<s:i18n.../>鏍囩浣滀負(fù)鐖舵爣絳劇殑<s:text.../>鏍囩銆佽〃鍗曟爣絳劇殑褰㈠紡錛?br />   a銆佸皢浠?lt;s:i18n.../>鏍囩鎸囧畾鐨勫浗闄呭寲璧勬簮鏂囦歡涓姞杞芥寚瀹歬ey瀵瑰簲鐨勬秷鎭?br />   b銆佸鏋滃湪a涓壘涓嶅埌鎸囧畾key瀵瑰簲鐨勬秷鎭紝鍒欐煡鎵緎truts.custom.i18n.resources甯擱噺鎸囧畾baseName鐨勭郴鍒楄祫婧愭枃浠躲?br />   c銆佸鏋滅粡榪囦笂闈㈡楠や竴鐩存壘涓嶅埌璇ey瀵瑰簲鐨勬秷鎭紝灝嗙洿鎺ヨ緭鍑鴻key鐨勫瓧絎︿覆鍊箋?/p>

(2)濡傛灉<s:text.../>鏍囩銆佽〃鍗曟爣絳炬病鏈変嬌鐢?lt;s:i18n.../>鏍囩浣滀負(fù)鐖舵爣絳撅細(xì)
    鐩存帴鍔犺澆struts.custom.i18n.resources甯擱噺鎸囧畾baseName鐨勭郴鍒楄祫婧愭枃浠躲傚鏋滄壘涓嶅埌璇ey瀵瑰簲鐨勬秷鎭紝灝嗙洿鎺ヨ緭鍑鴻key鐨勫瓧絎︿覆鍊箋?/p>

 

鍏佽鐢ㄦ埛鑷閫夋嫨紼嬪簭璇█

Struts2鍥介檯鍖栫殑榪愯鏈哄埗
    鍦⊿truts2涓紝鍙互閫氳繃ActionContext.getContext().setLocale(Locale arg)璁劇疆鐢ㄦ埛鐨勯粯璁よ璦銆?br />涓轟簡綆鍖栬緗敤鎴烽粯璁よ璦鐜錛孲truts2鎻愪緵浜嗕竴涓悕涓篿18n鐨勬嫤鎴櫒(Interceptor),騫朵笖灝嗗叾娉ㄥ唽鍦ㄩ粯璁ょ殑鎷︽埅鍣ㄤ腑(defaultStack)銆?br />    i18n鎷︽埅鍣ㄥ湪鎵цAction鏂規(guī)硶鍓嶏紝鑷姩鏌ユ壘璇鋒眰涓竴涓悕涓簉equest_locale鐨勫弬鏁般傚鏋滆鍙傛暟瀛樺湪錛屾嫤鎴櫒灝卞皢鍏朵綔涓哄弬鏁幫紝杞崲鎴怢ocale瀵硅薄錛?br />騫跺皢鍏惰涓虹敤鎴烽粯璁ょ殑Locale(浠h〃鍥藉/璇█鐜)銆?br /> 闄ゆ涔嬪錛宨18n鎷︽埅鍣ㄨ繕浼?xì)灏嗕笂闈㈢敓鎴愮殑Locale瀵硅薄淇濆瓨鍦ㄧ敤鎴稴ession鐨勫悕涓篧W_TRANS_I18N_LOCALE鐨勫睘鎬т腑銆備竴鏃︾敤鎴稴ession涓瓨鍦ㄤ竴涓悕涓?br />WW_TRANS_I18N_LOCALE鐨勫睘鎬э紝鍒欒灞炴ф寚瀹氱殑Locale灝嗕細(xì)浣滀負(fù)嫻忚鑰呯殑榛樿Locale銆?br /><%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<script. type="text/javascript">
function langSelecter_onChanged()
{
 document.getElementById("langForm").submit();
}
</script>
<%-- 璁劇疆SESSION_LOCALE涓虹敤鎴穝ession涓殑WW_TRANS_I18N_LOCALE灞炴у?--%>
<s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']"/>
<%-- 浣跨敤lee.Locales鍒涘緩locales瀹炰緥 --%>
<s:bean id="locales" name="lee.Locales">
 <%-- 涓簂ocales瀹炰緥浼犲叆current鍙傛暟鍊鹼紝濡傛灉SESSION_LOCALE涓虹┖錛屽垯榪斿洖ValueStack涓璴ocale灞炴у?鍗崇敤鎴鋒祻瑙堝櫒璁劇疆鐨凩ocale) --%>
 <s:param name="current" value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"/>
</s:bean>

<%-- 璁╃敤鎴烽夋嫨璇█鐨勮〃鍗?--%>
<form. action="<s:url/>" id="langForm"
    style="background-color:#bbbbbb; padding-top: 4px; padding-bottom: 4px;">
    <s:text name="languag"/>
 <s:select label="Language" list="#locales.locales" listKey="value" listValue="key"
        value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"
        name="request_locale" id="langSelecter"
        nchange="langSelecter_onChanged()" theme="simple"/>
</form>

鍦ㄥ叾浠栭〉闈腑鍖呭惈璇ラ〉闈?

<s:include value="selectlanguage.jsp"/>
鍦╯truts.xml鏂囦歡涓鍔燗ction閫氶厤絎︾殑閰嶇疆錛?br /><?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <constant name="struts.custom.i18n.resources" value="messageResource"/>
 <constant name="struts.i18n.encoding" value="GBK"/>
    <package name="lee" extends="struts-default">
  <!-- 浣跨敤閫氶厤絎﹀畾涔堿ction鐨刵ame -->
  <action name="*">
   <!-- 灝嗚姹傝漿鍙戠粰/WEB-INF/jsp/璺緞涓嬪悓鍚嶇殑JSP欏甸潰 -->
   <result>/WEB-INF/jsp/{1}.jsp</result>
  </action>
    </package>
</struts>



]]>
Struts2鎷︽埅鍣ㄧ殑浣跨敤http://www.tkk7.com/jjshcc/archive/2012/08/31/386699.htmlEric_jiangEric_jiangFri, 31 Aug 2012 07:59:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/08/31/386699.htmlhttp://www.tkk7.com/jjshcc/comments/386699.htmlhttp://www.tkk7.com/jjshcc/archive/2012/08/31/386699.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386699.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386699.html闃呰鍏ㄦ枃

]]>
Struts2鑷畾涔夋嫤鎴櫒瀹炰緥鈥旂櫥闄嗘潈闄愰獙璇?http://www.tkk7.com/jjshcc/archive/2012/08/29/386518.htmlEric_jiangEric_jiangWed, 29 Aug 2012 06:31:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/08/29/386518.htmlhttp://www.tkk7.com/jjshcc/comments/386518.htmlhttp://www.tkk7.com/jjshcc/archive/2012/08/29/386518.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386518.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386518.html

鐗堟湰錛歴truts2.1.6

姝ゅ疄渚嬪疄鐜板姛鑳斤細(xì)鐢ㄦ埛闇瑕佹寚瀹氱敤鎴峰悕鐧婚檰錛岀櫥闄嗘垚鍔熻繘鍏ョ浉搴旈〉闈㈡墽琛屾搷浣滐紝鍚﹀垯榪斿洖鍒扮櫥闄嗛〉闈㈣繘琛岀櫥闄嗭紝褰撶洿鎺ヨ闂搷浣滈〉闈紙鐧婚檰鍚庢墠鑳借闂殑欏甸潰錛夋椂鍒欎笉鍏佽錛岄』榪斿洖鐧婚檰欏甸潰銆?/p>

浠g爜濡備笅錛?/p>

涓銆侀〉闈?/p>

login.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2.   
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.   <head>    
  6.     <title>yuewei'Login</title>   
  7.     <!-- 
  8.     <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
  9.     -->  
  10.   </head>  
  11.     
  12.   <body>  
  13.   <form action="login.action" method="post">  
  14.   User:<input type="text" name="username"><br>  
  15.   Passoword:<input type="password" name="password"><br>  
  16.   <input type="submit" value="submit">  
  17.   </form>  
  18.      
  19. </body>  
  20. </html>  

welcome.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  3. <html>  
  4.   <head>  
  5.      
  6.     <title> yuewei's Welcome</title>  
  7.       
  8.  <!-- 
  9.  <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
  10.  -->  
  11.   
  12.   </head>  
  13.     
  14.   <body>  
  15.   <h1>鐧誨綍鎴愬姛鍚庢樉紺烘欏甸潰</h1>  
  16.   <a href="show.action" mce_href="show.action">show</a>  
  17.   </body>  
  18. </html>  

show.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2.   
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.   <head>  
  6.       
  7.     <title>yuewei's Show</title>  
  8.       
  9.     <!-- 
  10.     <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> 
  11.     -->  
  12.   
  13.   </head>  
  14.     
  15.   <body>  
  16.     Show This Page   
  17.         鐧誨綍鍚庢墽琛屾欏甸潰<br>  
  18.   </body>  
  19. </html>  

 

浜屻丄ction

LoginFormAction

  1. package com.ywjava.action;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class LoginFormAction extends ActionSupport {  
  6.     public String exexcute() {  
  7.         return "success";  
  8.     }  
  9. }  

LoginAction

  1. package com.ywjava.action;  
  2.   
  3. import com.opensymphony.xwork2.ActionContext;  
  4. import com.opensymphony.xwork2.ActionSupport;  
  5. import com.ywjava.utils.Constants;  
  6.   
  7. public class LoginAction extends  ActionSupport{  
  8. private String username;  
  9. private String password;  
  10. public String getPassword() {  
  11.     return password;  
  12. }  
  13. public void setPassword(String password) {  
  14.     this.password = password;  
  15. }  
  16. public String getUsername() {  
  17.     return username;  
  18. }  
  19. public void setUsername(String username) {  
  20.     this.username = username;  
  21. }  
  22.   
  23. private boolean isInvalid(String value) {     
  24.     return (value == null || value.length() == 0);     
  25. }     
  26. public String execute(){  
  27.         System.out.println(username);  
  28.         System.out.println(password);  
  29.           
  30.          if (isInvalid(getUsername()))     
  31.                 return INPUT;     
  32.         
  33.             if (isInvalid(getPassword()))     
  34.                 return INPUT;     
  35.         
  36.   
  37.     if(this.getUsername().equals("yuewei")&& this.getPassword().equals("yuewei")){  
  38.         ActionContext.getContext().getSession().put(Constants.USER_SESSION,getUsername());  
  39.         ActionContext.getContext().getSession().put(Constants.PASS,getPassword());  
  40.         return "success";  
  41.     }  
  42.     return "error";  
  43. }  
  44. }  

ShowAction

  1. package com.ywjava.action;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class ShowAction extends ActionSupport {  
  6.  public String execute() {  
  7.   return "success";  
  8.  }  
  9. }  

涓夈佹嫤鎴櫒

  1. package com.ywjava.interceptot;  
  2.   
  3. import java.util.Map;  
  4.   
  5. import com.opensymphony.xwork2.Action;  
  6. import com.opensymphony.xwork2.ActionContext;  
  7. import com.opensymphony.xwork2.ActionInvocation;  
  8. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  
  9. import com.ywjava.utils.Constants;  
  10.   
  11. public class LoginInterceptor extends AbstractInterceptor {  
  12.   
  13.     @Override  
  14.     public String intercept(ActionInvocation invocation) throws Exception {  
  15.   
  16.         // 鍙栧緱璇鋒眰鐩稿叧鐨凙ctionContext瀹炰緥  
  17.         ActionContext ctx = invocation.getInvocationContext();  
  18.         Map session = ctx.getSession();  
  19.         String user = (String) session.get(Constants.USER_SESSION);  
  20.   
  21.         // 濡傛灉娌℃湁鐧婚檰錛屾垨鑰呯櫥闄嗘墍鏈夌殑鐢ㄦ埛鍚嶄笉鏄痽uewei錛岄兘榪斿洖閲嶆柊鐧婚檰  
  22.   
  23.         if (user != null && user.equals("yuewei")) {  
  24.             System.out.println("test");  
  25.             return invocation.invoke();  
  26.         }  
  27.   
  28.         ctx.put("tip", "浣犺繕娌℃湁鐧誨綍");  
  29.         return Action.LOGIN;  
  30.   
  31.     }  
  32.   
  33. }  

鍥?struts.xml

[c-sharp] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.1.dtd">  
  5. <struts>  
  6.     <package name="authority" extends="struts-default">  
  7.       
  8.         <!-- 瀹氫箟涓涓嫤鎴櫒 -->  
  9.         <interceptors>  
  10.             <interceptor name="authority"  
  11.                 class="com.ywjava.interceptot.LoginInterceptor">  
  12.             </interceptor>  
  13.             <!-- 鎷︽埅鍣ㄦ爤 -->  
  14.             <interceptor-stack name="mydefault">  
  15.                 <interceptor-ref name="defaultStack" />  
  16.                 <interceptor-ref name="authority" />  
  17.             </interceptor-stack>  
  18.         </interceptors>  
  19.   
  20.         <!-- 瀹氫箟鍏ㄥ眬Result -->  
  21.         <global-results>  
  22.             <!-- 褰撹繑鍥瀕ogin瑙嗗浘鍚嶆椂錛岃漿鍏?login.jsp欏甸潰 -->  
  23.             <result name="login">/login.jsp</result>  
  24.         </global-results>  
  25.   
  26.         <action name="loginform"  
  27.             class="com.ywjava.action.LoginFormAction">  
  28.             <result name="success">/login.jsp</result>  
  29.         </action>  
  30.           
  31.         <action name="login" class="com.ywjava.action.LoginAction">  
  32.             <result name="success">/welcome.jsp</result>  
  33.             <result name="error">/login.jsp</result>  
  34.             <result name="input">/login.jsp</result>  
  35.         </action>  
  36.   
  37.         <action name="show" class="com.ywjava.action.ShowAction">  
  38.             <result name="success">/show.jsp</result>  
  39.             <!-- 浣跨敤姝ゆ嫤鎴櫒 -->  
  40.             <interceptor-ref name="mydefault" />  
  41.         </action>  
  42.           
  43.     </package>  
  44. </struts> 


]]>
OGNL http://www.tkk7.com/jjshcc/archive/2012/08/29/386516.htmlEric_jiangEric_jiangWed, 29 Aug 2012 06:18:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/08/29/386516.htmlhttp://www.tkk7.com/jjshcc/comments/386516.htmlhttp://www.tkk7.com/jjshcc/archive/2012/08/29/386516.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386516.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386516.html<li>璁塊棶鍊兼爤涓殑action鐨勬櫘閫氬睘鎬? username = <s:property value="username"/> </li>

<li>璁塊棶鍊兼爤涓璞$殑鏅氬睘鎬?get set鏂規(guī)硶)錛?lt;s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>

<li>璁塊棶鍊兼爤涓璞$殑鏅氬睘鎬?get set鏂規(guī)硶): <s:property value="cat.friend.name"/></li>

<li>璁塊棶鍊兼爤涓璞$殑鏅氭柟娉曪細(xì)<s:property value="password.length()"/></li>

<li>璁塊棶鍊兼爤涓璞$殑鏅氭柟娉曪細(xì)<s:property value="cat.miaomiao()" /></li>

<li>璁塊棶鍊兼爤涓璦ction鐨勬櫘閫氭柟娉曪細(xì)<s:property value="m()" /></li>

<hr />

<li>璁塊棶闈欐佹柟娉曪細(xì)<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>

<li>璁塊棶闈欐佸睘鎬э細(xì)<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>

<li>璁塊棶Math綾葷殑闈欐佹柟娉曪細(xì)<s:property value="@@max(2,3)" /></li>

<hr />

<li>璁塊棶鏅氱被鐨勬瀯閫犳柟娉曪細(xì)<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>

<hr />

<li>璁塊棶List:<s:property value="users"/></li>

<li>璁塊棶List涓煇涓厓绱?<s:property value="users[1]"/></li>

<li>璁塊棶List涓厓绱犳煇涓睘鎬х殑闆嗗悎:<s:property value="users.{age}"/></li>

<li>璁塊棶List涓厓绱犳煇涓睘鎬х殑闆嗗悎涓殑鐗瑰畾鍊?<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>

<li>璁塊棶Set:<s:property value="dogs"/></li>

<li>璁塊棶Set涓煇涓厓绱?<s:property value="dogs[1]"/></li>

<li>璁塊棶Map:<s:property value="dogMap"/></li>

<li>璁塊棶Map涓煇涓厓绱?<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>

<li>璁塊棶Map涓墍鏈夌殑key:<s:property value="dogMap.keys"/></li>

<li>璁塊棶Map涓墍鏈夌殑value:<s:property value="dogMap.values"/></li>

<li>璁塊棶瀹瑰櫒鐨勫ぇ灝忥細(xì)<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>

<hr />

<li>鎶曞獎(jiǎng)(榪囨護(hù))錛?lt;s:property value="users.{?#this.age==1}[0]"/></li>

<li>鎶曞獎(jiǎng)錛?lt;s:property value="users.{^#this.age>1}.{age}"/></li>

<li>鎶曞獎(jiǎng)錛?lt;s:property value="users.{$#this.age>1}.{age}"/></li>

<li>鎶曞獎(jiǎng)錛?lt;s:property value="users.{$#this.age>1}.{age} == null"/></li>

<hr />

<li>[]:<s:property value="[0].username"/></li>

]]>
濡備綍鑷畾涔塖truts2琛ㄥ崟楠岃瘉鍚庣殑閿欒淇℃伅鏄劇ず鏍煎紡/鏍峰紡http://www.tkk7.com/jjshcc/archive/2012/08/28/386463.htmlEric_jiangEric_jiangTue, 28 Aug 2012 14:17:00 GMThttp://www.tkk7.com/jjshcc/archive/2012/08/28/386463.htmlhttp://www.tkk7.com/jjshcc/comments/386463.htmlhttp://www.tkk7.com/jjshcc/archive/2012/08/28/386463.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/386463.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/386463.html闃呰鍏ㄦ枃

]]>
Struts 2, 鍊煎湪楠岃瘉澶辮觸鍥炲埌鍘熸潵欏甸潰鐨勬椂鍊欎細(xì)涓㈠け鐨勮В鍐蟲柟妗?/title><link>http://www.tkk7.com/jjshcc/archive/2010/08/03/327870.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Tue, 03 Aug 2010 13:56:00 GMT</pubDate><guid>http://www.tkk7.com/jjshcc/archive/2010/08/03/327870.html</guid><wfw:comment>http://www.tkk7.com/jjshcc/comments/327870.html</wfw:comment><comments>http://www.tkk7.com/jjshcc/archive/2010/08/03/327870.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jjshcc/comments/commentRss/327870.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jjshcc/services/trackbacks/327870.html</trackback:ping><description><![CDATA[<p>姣斿錛屽綋鎴戣娣誨姞涓涓俊鐢ㄥ崱鐨勬椂鍊欙紝鎴戦渶瑕佷俊鐢ㄥ崱鐨凜ardType, 榪欎簺鏁版嵁鏄瓨鍦ㄦ暟鎹簱涓殑錛屾垜瑕佸厛閫氳繃action 鐨勪竴涓?create鏂規(guī)硶錛屽彇鍒頒俊鐢ㄥ崱鐨勭被鍨嬶細(xì)</p> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_22_123_Open_Image" alt="" align="top" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_22_123_Closed_Image" alt="" style="display: none;" align="top" /><span style="color: #0000ff;">public</span><span style="color: #000000;"> String create()</span><span style="color: #000000;">{<br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />        creditCardTypeList <span style="color: #000000;">=</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.creditCardTypeService.getList();<br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />       <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> SUCCESS;<br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span></div> </div>   <p>Struts鐨勯厤緗枃浠訛細(xì)</p> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;"><</span><span style="color: #800000;">action </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="create"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="create"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="example.CreditCardAction"></span><span style="color: #000000;"><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />     </span><span style="color: #0000ff;"><</span><span style="color: #800000;">result </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="success"</span><span style="color: #0000ff;">></span><span style="color: #000000;">input.jsp</span><span style="color: #0000ff;"></</span><span style="color: #800000;">result</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;"></</span><span style="color: #800000;">action</span><span style="color: #0000ff;">></span></div> </div> <br /> <p>input.jsp</p> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div>...<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;"><br /> <</span><span style="color: #800000;">s:select </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="creditCard.creditCardTypeId"</span><span style="color: #ff0000;"> list</span><span style="color: #0000ff;">="creditCardTypeList"</span><span style="color: #ff0000;"> listKey</span><span style="color: #0000ff;">="creditCardTypeId"</span><span style="color: #ff0000;"> <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                listValue</span><span style="color: #0000ff;">="ccType"</span> <span style="color: #0000ff;">/></span><span style="color: #000000;"> <br /> ....</span></div> </div> <br /> <p>褰撴彁浜nput.jsp 鐨勬椂鍊?Validate 媯(gè)鏌ユ病鏈夐氳繃錛岃繖鏃舵垜闇瑕佸洖鍒癷nput.jsp錛屾鏃跺簲璇ヤ笅鎷夊垪琛ㄦ鐨凜reditType搴旇琚繚鐣?鍙渶瑕佸湪<span style="color: #0000ff;">example.CreditCardAction 瀹炵幇 </span><span style="color: #0000ff;">Preparable鎺ュ彛錛屽茍瀹炵幇prepare 鏂規(guī)硶錛岀劧鍚庡湪add鐨?action涓姞涓?/span></p> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="prepare"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="defaultStack"</span><span style="color: #0000ff;">/></span></div> </div> 灝卞彲浠ヤ簡<br /> prepare鏂規(guī)硶錛? <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_21_84_Open_Image" alt="" align="top" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_21_84_Closed_Image" alt="" style="display: none;" align="top" /><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> prepare()</span><span style="color: #000000;">{<br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" alt="" align="top" />    creditCardTypeList <span style="color: #000000;">=</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.creditCardTypeService.getList(); <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span></div> </div> <br /> Add Acton:<br /> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;"><</span><span style="color: #800000;">action </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="add"</span><span style="color: #ff0000;"> method</span><span style="color: #0000ff;">="add"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="example.CreditCardAction"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="prepare"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="defaultStack"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">result </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="input"</span><span style="color: #0000ff;">></span><span style="color: #000000;">input.jsp</span><span style="color: #0000ff;"></</span><span style="color: #800000;">result</span><span style="color: #0000ff;">></span><span style="color: #000000;">            <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">result </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="success"</span><span style="color: #ff0000;"> type</span><span style="color: #0000ff;">="redirect-action"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;"><</span><span style="color: #800000;">param </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="namespace"</span><span style="color: #0000ff;">></span><span style="color: #000000;">/credit</span><span style="color: #0000ff;"></</span><span style="color: #800000;">param</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;"><</span><span style="color: #800000;">param </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="actionName"</span><span style="color: #0000ff;">></span><span style="color: #000000;">list</span><span style="color: #0000ff;"></</span><span style="color: #800000;">param</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"></</span><span style="color: #800000;">result</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;"></</span><span style="color: #800000;">action</span><span style="color: #0000ff;">></span></div> </div> <br /> <p>  榪欐牱錛屽湪楠岃瘉鍓嶅皢棣栧厛璋冪敤 prepare鏂規(guī)硶錛屽嵆浣垮け璐ヤ簡鍥炲埌input.jsp欏甸潰creditCardType閫夋嫨妗嗙殑鍊間粛鐒跺瓨鍦ㄣ?/p> <p><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="defaultStack"</span><span style="color: #0000ff;">/> <span style="color: #000000;">涓殑 defaultStack 鏄垜浠湪struts.xml 涓厤緗殑錛屽叾涓垜浠敞閲婃帀浜?</span></span><span style="color: #000000;"><interceptor-ref name="prepare"/> 榪欐牱鍦╡xample.CreditCardAction涓殑鍏朵粬Action灝變笉浼?xì)棣栧厛鎵цprepare鏂規(guī)硶錛屽彧鏈夊姞涓婁簡 <interceptor-ref name="prepare"/> 鐨勬墠浼?xì)鍘婚鍏堟墽琛?prepare鏂規(guī)硶銆?/span></p> <span style="color: #000000;"> <div style="padding: 4px 5.4pt; background: none repeat scroll 0% 50% #e6e6e6; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;"><</span><span style="color: #800000;">package </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="project-default"</span><span style="color: #ff0000;"> abstract</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"> extends</span><span style="color: #0000ff;">="struts-default"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />         </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />         </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-stack </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="defaultStack"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="exception"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="alias"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="servletConfig"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #008000;"><!--</span><span style="color: #008000;">                           <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                <interceptor-ref name="prepare"/><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                 </span><span style="color: #008000;">--></span><span style="color: #000000;">                              <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="i18n"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="chain"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="debugging"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="profiling"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="scopedModelDriven"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="modelDriven"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="fileUpload"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #008000;"><!--</span><span style="color: #008000;"> <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                <interceptor-ref name="checkbox">  <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                       <param name="uncheckedValue">no</param>  <br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </interceptor-ref><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #008000;">--></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="staticParams"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="params"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                  </span><span style="color: #0000ff;"><</span><span style="color: #800000;">param </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="excludeParams"</span><span style="color: #0000ff;">></span><span style="color: #000000;">dojo..*</span><span style="color: #0000ff;"></</span><span style="color: #800000;">param</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"></</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="conversionError"</span><span style="color: #0000ff;">/></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="validation"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">param </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="excludeMethods"</span><span style="color: #0000ff;">></span><span style="color: #000000;">input,back,cancel,browse</span><span style="color: #0000ff;"></</span><span style="color: #800000;">param</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"></</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"><</span><span style="color: #800000;">interceptor-ref </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="workflow"</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    </span><span style="color: #0000ff;"><</span><span style="color: #800000;">param </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="excludeMethods"</span><span style="color: #0000ff;">></span><span style="color: #000000;">input,back,cancel,browse</span><span style="color: #0000ff;"></</span><span style="color: #800000;">param</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;"></</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;"></</span><span style="color: #800000;">interceptor-stack</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />       </span><span style="color: #0000ff;"></</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">></span><span style="color: #000000;"><br /> <img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;"></</span><span style="color: #800000;">package</span><span style="color: #0000ff;">></span><span style="color: #000000;">  <br /> </span></div> </div> </span> <img src ="http://www.tkk7.com/jjshcc/aggbug/327870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jjshcc/" target="_blank">Eric_jiang</a> 2010-08-03 21:56 <a href="http://www.tkk7.com/jjshcc/archive/2010/08/03/327870.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>struts2涓婁紶鏂囦歡銆佺敓鎴愮緝鐣ュ浘銆佹坊鍔犳枃瀛楀拰鍥劇墖姘村嵃http://www.tkk7.com/jjshcc/archive/2010/07/14/326133.htmlEric_jiangEric_jiangWed, 14 Jul 2010 13:26:00 GMThttp://www.tkk7.com/jjshcc/archive/2010/07/14/326133.htmlhttp://www.tkk7.com/jjshcc/comments/326133.htmlhttp://www.tkk7.com/jjshcc/archive/2010/07/14/326133.html#Feedback0http://www.tkk7.com/jjshcc/comments/commentRss/326133.htmlhttp://www.tkk7.com/jjshcc/services/trackbacks/326133.html闃呰鍏ㄦ枃

]]>
JSP欏甸潰鑾峰彇ValueStack涓殑鍊?/title><link>http://www.tkk7.com/jjshcc/archive/2010/06/30/324924.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Wed, 30 Jun 2010 13:18:00 GMT</pubDate><guid>http://www.tkk7.com/jjshcc/archive/2010/06/30/324924.html</guid><wfw:comment>http://www.tkk7.com/jjshcc/comments/324924.html</wfw:comment><comments>http://www.tkk7.com/jjshcc/archive/2010/06/30/324924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jjshcc/comments/commentRss/324924.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jjshcc/services/trackbacks/324924.html</trackback:ping><description><![CDATA[<p>鎴戜滑鐭ラ亾Struts2浼?xì)灏咥ction涓殑灞炴у瓨鏀懼埌ValueStack瀵硅薄涓紝鍦ㄩ氳繃Action杞彂鐨勯〉闈腑錛屾垜浠彲浠ラ氳繃Struts2鐨勬爣絳?lt;s:property/>鏉ヨ緭鍑鴻繖浜涘鹼紝浣嗘槸榪欐牱寰楀埌鐨勫煎嵈浠呴檺浜庤緭鍑烘樉紺猴紝涓嶈兘榪涜榪涗竴姝ョ殑鎿嶄綔錛岄偅涔堟垜浠簲璇ユ庢牱寰楀埌ValueStack涓殑鍊煎張鑳藉瀹冭繘琛屽叾浠栨搷浣滃憿錛?/p> <p>棣栧厛錛屾垜浠渶瑕佷簡瑙truts2鏄皢Action涓殑灞炴у叏閮ㄥ皝瑁呭湪涓涓彨鍋歴truts.valueStack鐨勮姹傚睘鎬т腑錛岀劧鍚庢垜浠氨鍙互閫氳繃涓嬮潰鐨勪唬鐮佹潵鑾峰彇榪欎簺鍊間簡錛?/p> <p> </p> <pre style="display: none" class="html" name="code"><%@ page import="com.opensymphony.xwork2.util.*"%> <% ValueStack vs = (ValueStack)request.getAttribute("struts.valueStack"); List someThing= (List)vs.findValue("someThing"); %> </pre> <p> <span style="white-space: pre">someThing鏄疉ction涓睘鎬у肩殑鍚嶇О銆?/span></p> <img src ="http://www.tkk7.com/jjshcc/aggbug/324924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jjshcc/" target="_blank">Eric_jiang</a> 2010-06-30 21:18 <a href="http://www.tkk7.com/jjshcc/archive/2010/06/30/324924.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Struts2鐨勫睘鎬ч┍鍔ㄤ笌妯″瀷椹卞姩鐨勫尯鍒?/title><link>http://www.tkk7.com/jjshcc/archive/2010/06/17/323750.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Thu, 17 Jun 2010 13:05:00 GMT</pubDate><guid>http://www.tkk7.com/jjshcc/archive/2010/06/17/323750.html</guid><wfw:comment>http://www.tkk7.com/jjshcc/comments/323750.html</wfw:comment><comments>http://www.tkk7.com/jjshcc/archive/2010/06/17/323750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jjshcc/comments/commentRss/323750.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jjshcc/services/trackbacks/323750.html</trackback:ping><description><![CDATA[<p>1.Struts2鐨勫睘鎬ч┍鍔? </p> <p>Struts2鐨勫睘鎬ч┍鍔ㄦ寚鐨勬槸鍦╝ction涓璊SP欏甸潰鐨勬瘡涓涓猣orm涓殑name閮藉搴斿湪action涓湁涓涓睘鎬т笌涔嬪搴斻傜湅涓嬮潰浠g爜鐗囨: </p> <p> </p> <p><br /> <form action="register.do" name="RegisterForm" method="post"> </p> <p>            Username:<input type="text" name="uname"><br><br />             Password:<input type="password" name="upass"><br><br />             Confirm: <input type="password" name="rpass"><br><br />             <input type="submit" value="Submit"> </p> <p></form> </p> <p> </p> <p><br /> 榪欐槸涓涓渶鍩烘湰鐨勭敤鎴鋒敞鍐岀殑琛ㄥ崟,瀹冩湁涓変釜鏁版嵁瑕佹彁浜? uname銆乽pass銆乺pass錛岄偅涔堝搴旂殑Action涔熻鏈変笁涓睘鎬э紙鍏跺疄鏄笁涓睘鎬х殑setter錛夛紝鐪媟egister.do瀹為檯鐨凙ction瀹氫箟綾伙細(xì) </p> <p> </p> <p><br /> package org.abu.csdn.action.user;</p> <p>import com.opensymphony.xwork2.ActionSupport;</p> <p>/**<br />  * Struts2灞炴ч┍鍔ㄦ紨紺虹敤鐨凙ction<br />  * @author 闃垮竷<br />  *<br />  */ <br /> public class RegisterAction extends ActionSupport {</p> <p>    private String uname;<br />     private String upass;<br />     private String rpass;</p> <p>    public String getUname() {<br />         return uname;<br />     }</p> <p>    public void setUname(String uname) {<br />         this.uname = uname;<br />     }</p> <p>    public String getUpass() {<br />         return upass;<br />     }</p> <p>    public void setUpass(String upass) {<br />         this.upass = upass;<br />     }</p> <p>    public String getRpass() {<br />         return rpass;<br />     }</p> <p>    public void setRpass(String rpass) {<br />         this.rpass = rpass;<br />     }<br />     <br />     @Override<br />     public String execute() throws Exception {        <br />         return ActionSupport.SUCCESS;<br />     }</p> <p>}</p> <p> </p> <p> </p> <p>浣犱細(xì)鐪嬪埌RegisterAction涓殑涓変釜灞炴у拰RegisterForm琛ㄥ崟涓殑name灞炴у悕瀛椾竴妯′竴鏍鳳紝娌¢敊錛岃繖灝辨槸Struts2鐨勫睘鎬ч┍鍔紝褰撹〃鍗曟彁浜ゅ埌RegisterAction鍚庯紝Struts2灝嗕細(xì)鑷姩灝嗘牴鎹〃鍗曠殑name灞炴ц皟鐢ˋction涓浉搴旂殑灞炴etter錛屽幓鑷姩璧嬪箋?</p> <p> </p> <p><br /> 2.Struts2鐨勬ā鍨嬮┍鍔?</p> <p>Struts2鐨勬ā鍨嬮┍鍔ㄥ叾瀹炲拰Struts1.x涓殑ActionForm鏈夌偣綾諱技錛屽湪Struts1.x涓瘡涓涓狝ction閮藉繀欏繪湁涓涓狝ctionForm涓庝箣瀵瑰簲錛岃孲truts2.0涓紝姣忎竴涓狝ction鍚屾牱闇瑕佹彁渚涗竴涓狿OJO瀵硅薄錛岀敤鏉ュ皝瑁呰〃鍗曞睘鎬э紝鐪嬩唬鐮侊細(xì) </p> <p> </p> <p><br /> <form action="register.do" name="RegisterForm" method="post"> </p> <p>            Username:<input type="text" name="uname"><br><br />             Password:<input type="password" name="upass"><br><br />             Confirm: <input type="password" name="rpass"><br><br />             <input type="submit" value="Submit"> </p> <p></form> </p> <p> </p> <p><br /> 榪欐琛ㄥ崟鐨勪唬鐮佸拰涓婇潰鐨勪竴妯′竴鏍鳳紝灝變笉璧樿堪浜嗐傛帴涓嬫潵鐪婸OJO鐨勪唬鐮侊紝鍏跺疄灝辨槸鏅氱殑Java Bean錛?</p> <p> </p> <p><br /> package org.abu.csdn.action.user;</p> <p>import com.opensymphony.xwork2.ActionSupport;</p> <p>/**<br />  * Struts2灞炴ч┍鍔ㄦ紨紺虹敤鐨凧ava Bean<br />  * @author 闃垮竷<br />  *<br />  */ <br /> public class User {</p> <p>    private String uname;<br />     private String upass;<br />     private String rpass;</p> <p>    public String getUname() {<br />         return uname;<br />     }</p> <p>    public void setUname(String uname) {<br />         this.uname = uname;<br />     }</p> <p>    public String getUpass() {<br />         return upass;<br />     }</p> <p>    public void setUpass(String upass) {<br />         this.upass = upass;<br />     }</p> <p>    public String getRpass() {<br />         return rpass;<br />     }</p> <p>    public void setRpass(String rpass) {<br />         this.rpass = rpass;<br />     }<br />    <br /> } </p> <p> </p> <p><br /> 瀵逛笉璧鳳紝涔熸槸鍜屽睘鎬ч┍鍔ㄤ腑鐨勪緥瀛愪竴鏍鳳紝寰堢畝鍗曪紝鍥犱負(fù)婕旂ず鐨勯兘鏄悓涓涓緥瀛愶紝鍙槸鏂規(guī)硶涓嶅悓鑰屽凡錛屼絾鏄帴涓嬫潵灝變笉涓鏍蜂簡錛岀湅RegisterAction浠g爜錛?</p> <p> </p> <p><br /> package org.abu.csdn.action.user;</p> <p>import org.abu.csdn.dto.User;</p> <p>import com.opensymphony.xwork2.ActionSupport;<br /> import com.opensymphony.xwork2.ModelDriven;</p> <p>/**<br />  * Struts2妯″瀷椹卞姩婕旂ず鐢ㄧ殑Action<br />  *  <br />  * @author 闃垮竷<br />  *<br />  */ <br /> public class RegisterAction extends ActionSupport implements ModelDriven<User> {</p> <p>    private User user;<br />     <br />     public User getUser() {<br />         return user;<br />     }</p> <p>    public void setUser(User user) {<br />         this.user = user;<br />     }</p> <p>    @Override<br />     public String execute() throws Exception {        <br />         return ActionSupport.SUCCESS;<br />     }</p> <p>    // 妯″瀷椹卞姩蹇呴』瀹炵幇鐨勬柟娉曪紝涔熸槸ModelDriven鎺ュ彛涓敮涓鐨勬柟娉?<br />     public User getModel() {<br />         <br />         return user;<br />     }</p> <p>}</p> <p> </p> <p> </p> <p>鐪嬪埌娌℃湁錛屽拰灞炴ч┍鍔ㄧ殑Action鏈夊緢澶х殑鍖哄埆錛屼笅闈竴涓鍒椾婦錛?</p> <p>錛?錛夋ā鍨嬮┍鍔ㄧ殑Action蹇呴』瀹炵幇ModelDriven鎺ュ彛錛岃屼笖瑕佹彁渚涚浉搴旂殑娉涘瀷錛岃繖閲屽綋鐒跺氨鏄叿浣撲嬌鐢ㄧ殑Java Bean浜嗐?</p> <p>錛?錛夊疄鐜癕odelDriven鐨刧etModel鏂規(guī)硶錛屽叾瀹炲氨鏄畝鍗曠殑榪斿洖娉涘瀷鐨勪竴涓璞°?</p> <p>錛?錛夊湪Action鎻愪緵涓涓硾鍨嬬殑縐佹湁瀵硅薄錛岃繖閲屽氨鏄畾涔変竴涓猆ser鐨剈ser瀵硅薄錛屽茍鎻愪緵鐩稿簲鐨刧etter涓巗etter銆?</p> <p>濂戒簡錛屼笂闈㈢殑涓変歡浜嬪仛瀹屼箣鍚庯紝Action灝變細(xì)鍘昏嚜鍔ㄨ皟鐢║ser鐨剆etter灝嗚〃鍗曚腑鐨刵ame灞炴х殑鍊艱祴緇橴ser涓殑灞炴с傝孉ction鐨勫悗緇鐞嗙殑Jsp欏甸潰鍚庤呮槸Servlet灝卞彲浠ヤ嬌鐢╱ser瀵硅薄浜嗐?</p> <p> </p> <p> </p> <p> </p> <p>3.鍒板簳鏄敤灞炴ч┍鍔ㄥ拰鏄ā鍨嬮┍鍔ㄥ憿錛?</p> <p> </p> <p> </p> <p>榪欎釜闂鍥版壈浜嗗緢澶歋truts2鐨勫垵瀛﹁咃紝鎴戣繖閲屾彁渚涗竴浜涘緩璁細(xì) </p> <p>錛?錛夎浣犵粺涓鏁翠釜緋葷粺涓殑Action浣跨敤鐨勯┍鍔ㄦā鍨嬶紝鍗寵涔堥兘鏄敤灞炴ч┍鍔紝瑕佷箞閮芥槸鐢ㄦā鍨嬮┍鍔ㄣ?</p> <p>錛?錛夊鏋滀綘鐨凞B涓殑鎸佷箙灞傜殑瀵硅薄涓庤〃鍗曚腑鐨勫睘鎬ч兘鏄竴涓瀵瑰簲鐨勮瘽錛岄偅涔堝氨浣跨敤妯″瀷椹卞姩鍚э紝姣曠珶鐪嬭搗鏉ヤ唬鐮佽鏁存磥寰楀銆?</p> <p>錛?錛夊鏋滆〃鍗曠殑灞炴т笉鏄竴涓瀵瑰簲鐨勮瘽錛岄偅涔堝氨搴旇浣跨敤灞炴ч┍鍔紝鍚﹀垯錛屼綘鐨勭郴緇熷氨蹇呴』鎻愪緵涓や釜Bean錛屼竴涓搴旇〃鍗曟彁浜ょ殑鏁版嵁錛屽彟涓涓敤涓庢寔涔呭眰銆?</p> <p> </p> <p><br /> 鐪嬩笂闈㈢殑渚嬪瓙錛屽叾瀹炲瘑鐮佺‘璁pass鏄笉闇瑕佹斁鍒癉B涓幓鐨勶紝鑰屼粎浠呮槸鐢ㄤ簬鏍¢獙瀵嗙爜鐨勶紝涓嶆槸鍚楋紵閭d箞濡傛灉浣跨敤妯″瀷椹卞姩鐨勮瘽錛屽氨瀛樺湪榪欎釜闂浜嗭紝鑰屼嬌鐢ㄥ睘鎬ч┍鍔ㄧ殑璇濆張鏈変簺綣佺悙錛岀幇鍦ㄦ垜浠氨鏉ヨ皟鏁翠竴涓湅鎴戠殑瑙e喅鏂規(guī)硶錛?</p> <p> </p> <p><br /> 4.瀹屾暣鐨勪緥瀛?</p> <p>錛?錛夎〃鍗曟彁浜ょ殑JSP欏甸潰index.jsp </p> <p><%@ page language="java" contentType="text/html; charset=UTF-8"<br />     pageEncoding="UTF-8"%><br /> <%@ taglib uri="/struts-tags" prefix="s"%><br /> <%<br />     String path = request.getContextPath();<br />     String basePath = request.getScheme() + "://"<br />             + request.getServerName() + ":" + request.getServerPort()<br />             + path + "/";<br /> %></p> <p><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><br /> <html><br />     <head><br />         <base href="<%=basePath%>"><br />         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br />         <title>CSDN棣栭〉</title><br />     </head><br />     <body><br />         <s:a href="userManager/userRegister.jsp">鐢ㄦ埛娉ㄥ唽</s:a><br />         <br />         <form action="register.do" name="SampleForm" method="post"><br />             Username:<input type="text" name="uname"><br><br />             Password:<input type="password" name="upass"><br><br />             Confirm: <input type="password" name="rpass"><br><br />             <input type="submit" value="Submit"> <br />         </form><br />     </body><br /> </html> </p> <p> </p> <p><br /> (2)User鐨勫畾涔?</p> <p> </p> <p><br /> package org.abu.csdn.action.user;</p> <p>import com.opensymphony.xwork2.ActionSupport;</p> <p>/**<br />  * Struts2灞炴ч┍鍔ㄦ紨紺虹敤鐨凧ava Bean<br />  * @author 闃垮竷<br />  *<br />  */ <br /> public class User {</p> <p>    private String uname;<br />     private String upass;  </p> <p>    public String getUname() {<br />         return uname;<br />     }</p> <p>    public void setUname(String uname) {<br />         this.uname = uname;<br />     }</p> <p>    public String getUpass() {<br />         return upass;<br />     }</p> <p>    public void setUpass(String upass) {<br />         this.upass = upass;<br />     }   <br />    <br /> } </p> <p> </p> <p><br /> 錛?錛塕egisterAction鐨勫畾涔?</p> <p> </p> <p><br /> package org.abu.csdn.action.user;</p> <p>import com.opensymphony.xwork2.ActionSupport;</p> <p>/**<br />  * Struts2灞炴ч┍鍔ㄦ紨紺虹敤鐨凙ction<br />  * @author 闃垮竷<br />  *<br />  */ <br /> public class RegisterAction extends ActionSupport {</p> <p> </p> <p> </p> <p>    // 鐢ㄦ潵緇檚pring娉ㄥ叆錛屽強(qiáng)灞炴ф嫹璐?</p> <p><br />     private User user;</p> <p> </p> <p> </p> <p>    private String uname;<br />     private String upass;<br />     private String rpass;</p> <p>    public String getUname() {<br />         return uname;<br />     }</p> <p>    public void setUname(String uname) {<br />         this.uname = uname;<br />     }</p> <p>    public String getUpass() {<br />         return upass;<br />     }</p> <p>    public void setUpass(String upass) {<br />         this.upass = upass;<br />     }</p> <p>    public String getRpass() {<br />         return rpass;<br />     }</p> <p>    public void setRpass(String rpass) {<br />         this.rpass = rpass;<br />     }<br />     <br />     @Override<br />     public String execute() throws Exception { </p> <p>        // 璋冪敤鏂規(guī)硶灝嗗睘鎬opy鍒皍ser涓幓錛屼究浜庡悗緇殑service鏂規(guī)硶 </p> <p><br />         copyAttribute(); </p> <p>        // TODO錛氱紪鍐欒嚜宸辯殑user涓氬姟浠g爜 <br />         return ActionSupport.SUCCESS;<br />     } </p> <p> </p> <p><br />     /**<br />      * 娉ㄦ剰榪欐槸涓涓猘ction鍏ㄥ眬鐨勬牎楠?br />      */ <br />     @Override<br />     public void validate() {<br />         // 榪涜瀵嗙爜鐨勬牎楠?<br />         if (!(upass.trim()).equals((rpass.trim()))) {<br />             // 娉ㄦ剰榪欓噷addFieldError鐨刦ieldName鍙傛暟蹇呴』鐢ㄥ紩鍙峰紩璧鋒潵,<br />             // 涓嶈兘榪欐牱浣跨敤addFieldError(rpass,"XXXXXX"),鑰屽繀欏繪槸addFieldError("rpass","XXXXX") <br />             this.addFieldError("rpass", this<br />                     .getText("csdn.action.user.register.validate.verify"));<br />         }<br />     }</p> <p> </p> <p> </p> <p> </p> <p><br />     /**<br />      * 灝嗚〃鍗曞睘鎬т腑闇瑕佹寔涔呭寲鐨勫睘鎬ф嫹璐濆埌user涓幓<br />      * @author 闃垮竷<br />      *<br />     */ <br />     private void copyAttributes () { </p> <p>            user.setUname(uname); </p> <p>            user.setUpass(upass);</p> <p><br />     } </p> <p><br /> } </p> <p> </p> <p> </p> <p> </p> <p>錛?錛塖truts.xml閰嶇疆 </p> <p><?xml version="1.0" encoding="UTF-8" ?><br /> <!DOCTYPE struts PUBLIC<br />     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"<br />     "http://struts.apache.org/dtds/struts-2.1.dtd"><br /> <struts><br />     <package name="root" extends="struts-default" namespace="/userManager"><br />         <action name="userRegister" class="org.abu.csdn.action.user.RegisterAction"><br />             <result name="success">/index.jsp</result><br />             <result name="input">/userManager/userRegister.jsp</result><br />         </action>                <br />     </package><br /> </struts></p> <p> </p> <p> </p> <p> </p> <p>鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/csuliky/archive/2009/05/30/4226917.aspx</p> <img src ="http://www.tkk7.com/jjshcc/aggbug/323750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jjshcc/" target="_blank">Eric_jiang</a> 2010-06-17 21:05 <a href="http://www.tkk7.com/jjshcc/archive/2010/06/17/323750.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://66661660.com" target="_blank">亚洲精选在线观看</a>| <a href="http://phlinhng.com" target="_blank">亚洲国产一区二区三区</a>| <a href="http://ac839.com" target="_blank">曰批全过程免费视频播放网站</a>| <a href="http://ygf123.com" target="_blank">中文字幕免费在线看电影大全</a>| <a href="http://tom-erc20.com" target="_blank">免费一级做a爰片久久毛片潮</a>| <a href="http://aaa99999.com" target="_blank">国产成人不卡亚洲精品91</a>| <a href="http://c7vl.com" target="_blank">久久亚洲精品无码网站</a>| <a href="http://fshomppa.com" target="_blank">久久亚洲中文无码咪咪爱</a>| <a href="http://lemonbt.com" target="_blank">久久综合亚洲色hezyo</a>| <a href="http://155562.com" target="_blank">国产亚洲精品美女久久久久久下载</a>| <a href="http://xxyy66.com" target="_blank">毛片亚洲AV无码精品国产午夜</a>| <a href="http://www-84243.com" target="_blank">亚洲第一se情网站</a>| <a href="http://xxxxyz.com" target="_blank">日本中文字幕免费看</a>| <a href="http://fense1.com" target="_blank">国产乱妇高清无乱码免费</a>| <a href="http://6006284.com" target="_blank">韩日电影在线播放免费版</a>| <a href="http://xmllhb.com" target="_blank">美女在线视频观看影院免费天天看 </a>| <a href="http://vv848.com" target="_blank">222www免费视频</a>| <a href="http://sxgzjssb.com" target="_blank">亚洲一区二区三区免费观看</a>| <a href="http://ydysmedia.com" target="_blank">日本免费一区二区在线观看</a>| <a href="http://8568008.com" target="_blank">中字幕视频在线永久在线观看免费</a>| <a href="http://ac839.com" target="_blank">毛片免费观看的视频在线</a>| <a href="http://xin-matai.com" target="_blank">欧洲精品免费一区二区三区</a>| <a href="http://zz773.com" target="_blank">免费人成在线观看视频播放</a>| <a href="http://zhuanjiao521.com" target="_blank">免费在线观看亚洲</a>| <a href="http://huakangweicai.com" target="_blank">老司机亚洲精品影视www</a>| <a href="http://0939666.com" target="_blank">亚洲国产精彩中文乱码AV</a>| <a href="http://3333seav.com" target="_blank">久久精品国产亚洲av日韩</a>| <a href="http://lkzrgy.com" target="_blank">激情内射亚洲一区二区三区爱妻</a>| <a href="http://biarn.com" target="_blank">亚洲av永久中文无码精品</a>| <a href="http://tbw77.com" target="_blank">特a级免费高清黄色片</a>| <a href="http://mangshigas.com" target="_blank">青青操免费在线视频</a>| <a href="http://arkinbokis.com" target="_blank">57pao一国产成视频永久免费</a>| <a href="http://www9797nn.com" target="_blank">野花高清在线观看免费3中文</a>| <a href="http://zmtme.com" target="_blank">国产成人在线免费观看</a>| <a href="http://zc-zk.com" target="_blank">中文字幕亚洲一区二区va在线</a>| <a href="http://ksyanhui.com" target="_blank">西西人体44rt高清亚洲</a>| <a href="http://51jingpai.com" target="_blank">亚洲毛片基地4455ww</a>| <a href="http://aqdav22.com" target="_blank">精品国产亚洲AV麻豆</a>| <a href="http://fz166.com" target="_blank">日韩电影免费在线观看网站</a>| <a href="http://vvww-3499.com" target="_blank">最新黄色免费网站</a>| <a href="http://eaivan.com" target="_blank">国产一区二区三区免费在线观看</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>