锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一级片在线播放,亚洲国产成人久久精品软件 ,亚洲熟妇无码一区二区三区导航http://m.tkk7.com/kook/category/15630.htmlzh-cnFri, 02 Mar 2007 03:11:31 GMTFri, 02 Mar 2007 03:11:31 GMT60Validator楠岃瘉妗嗘灦http://m.tkk7.com/kook/articles/71821.htmlkookkookMon, 25 Sep 2006 12:50:00 GMThttp://m.tkk7.com/kook/articles/71821.htmlhttp://m.tkk7.com/kook/comments/71821.htmlhttp://m.tkk7.com/kook/articles/71821.html#Feedback0http://m.tkk7.com/kook/comments/commentRss/71821.htmlhttp://m.tkk7.com/kook/services/trackbacks/71821.htmlStruts1.2涓垱寤洪獙璇佹鏋剁殑姝ラ錛?br />
1銆佸湪struts-config.xml鏂囦歡涓坊鍔犱笅鍒楀唴瀹癸細(xì)
< plug - in聽className = " org.apache.struts.validator.ValidatorPlugIn " >
聽聽聽聽聽聽聽聽
< set - property聽property = " pathnames " 聽value = " /WEB-INF/validator-rules.xml,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽/WEB-INF/validation.xml
" />

</ plug - in >

娉ㄦ剰錛氳繖浜涘唴瀹瑰繀欏繪斁鍦?lt;message-resources>鍏冪礌涔嬪悗銆傝瑙勫垯鏄敱
"
http://struts.apache.org/dtds/struts-config_1_2.dtd "鏂囦歡鍒跺畾鐨勩?br />
2銆佸垱寤虹浉鍏崇殑緇勪歡錛?br />
涓轟簡(jiǎn)瀹為獙鐨勭洰鐨勶紝鎴戜緷嬈″垱寤?涓狝ctionForm綾伙紝涓涓狫SP錛屼竴涓狝ction綾伙紝浠ヤ笅鏄粬浠湪struts-config.xml涓殑閰嶇疆淇℃伅錛?br />
聽1<form-beans聽>
聽2聽聽聽聽<form-bean聽name="DVForm"聽type="org.apache.struts.validator.DynaValidatorForm">
聽3聽聽聽聽聽聽<form-property聽name="name"聽type="java.lang.String"/>
聽4聽聽聽聽</form-bean>
聽5聽聽聽聽<form-bean聽name="DVAForm"聽type="org.apache.struts.validator.DynaValidatorActionForm">
聽6聽聽聽聽聽聽<form-property聽name="name"聽type="java.lang.String"/>
聽7聽聽聽聽</form-bean>
聽8聽聽聽聽<form-bean聽name="VForm"聽type="com.kook.struts.form.HahaForm"/>
聽9聽聽聽聽<form-bean聽name="VAForm"聽type="com.kook.struts.form.HohoForm"/>
10聽聽</form-beans>
11
12聽聽<global-exceptions聽/>
13聽聽<global-forwards聽/>
14聽聽<action-mappings聽>
15聽聽聽聽< action
16聽聽聽聽聽聽attribute="DVForm"

17聽聽聽聽聽聽input="/form/index.jsp"
18聽聽聽聽聽聽name="DVForm"
19聽聽聽聽聽聽path="/index"
20聽聽聽聽聽聽scope="request"
21聽聽聽聽聽聽type="com.kook.struts.action.IndexAction"/>
22聽聽</action-mappings>

鍏朵腑
<form-bean name="VForm" type="com.kook.struts.form.HahaForm" />鏄疺alidatorForm綾葷殑瀛愮被
<form-bean name="VAForm" type="com.kook.struts.form.HohoForm" />鏄疺alidatorActionForm綾葷殑瀛愮被

涓嬮潰鏄疛SP欏甸潰浠g爜錛?br />
1<html:form聽action="/index"onsubmit="return聽validateDVForm(this)">
2聽聽聽聽聽聽聽聽聽聽聽聽name聽:聽<html:text聽property="name"/><html:errors聽property="name"/><br/>
3聽聽聽聽聽聽聽聽聽聽聽聽<html:submit/>
4</html:form>
5<html:javascript聽formName="DVForm"/>

鍥犱負(fù)鍙槸鍋氳〃鍗曢獙璇侊紝action綾誨彲浠ヤ笉鐢ㄦ秹鍙?qiáng)锛屽洜姝や笉鍒楀嚭action綾葷殑浠g爜鍟︼紒

3銆佸垹闄ame="VForm" 鍜宯ame="VAForm"鐨凙ctionForm涓殑validate鏂規(guī)硶銆?br />
鍥犱負(fù)榪欎袱涓被涓嶆槸鍔ㄦ佺殑楠岃瘉綾伙紝鍦ㄤ嬌鐢ㄥ悜瀵肩敓鎴愪唬鐮佺殑鏃跺欎細(xì)鑷姩瑕嗙洊鐖剁被鐨剉alidate鏂規(guī)硶銆傚鏋滀笉鍒犻櫎鐨勮瘽錛屾牴鎹被鐨勫鎬佹у師鐞嗭紝浼?xì)璋冪敤浠栦滑鐢熸垚鐨剉alidate鏂規(guī)硶錛岃屼笉璋冪敤浠栦滑鐖剁被鐨勮鏂規(guī)硶銆備絾鏄紝瀹為檯涓婏紝鏄粬浠埗綾葷殑validate鏂規(guī)硶璋冪敤浜?jiǎn)validator妗嗘灦鐨勯獙璇佹柟娉曪紝鍥犳鎴戜滑娌℃湁蹇呰鍐嶅幓閲嶅啓浠栫殑榪欎釜鏂規(guī)硶銆傚悓鏃朵篃瑕佽寰楀垹闄わ紝鍥犱負(fù)鍚戝鐢熸垚鐨勬槸絀哄疄鐜幫紝涓嶅垹闄ょ殑璇濓紝璧蜂笉鍒伴獙璇佷綔鐢ㄣ傚垏璁板垏璁幫紒錛侊紒鏇劇粡鍦ㄨ繖鍚冨晩鎷呭瓙婊達(dá)紒錛?

瑙傚療浠ヤ笂浠g爜涓嶉毦鍙戠幇錛岃〃鍗曚腑鍙湁涓涓枃鏈錛屽洜姝ゅ疄楠屼篃鏄榪欎釜鏂囨湰妗嗚繘琛岄獙璇併?br />
4銆佸垱寤鴻嚜瀹氫箟鐨勯獙璇佹枃浠秜alidation.xml錛屼富瑕佸唴瀹瑰涓嬫墍紺猴細(xì)
聽1<form-validation> 聽聽聽聽
聽2聽聽聽聽<formset>

聽3聽聽聽聽聽聽聽聽<form聽name="DVForm">
聽4聽聽聽聽聽聽聽聽聽聽聽聽<field聽property="name"聽depends="required">
聽5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽name="required"聽key="lable.name"/>
聽7聽聽聽聽聽聽聽聽聽聽聽聽</field>
聽8聽聽聽聽聽聽聽聽</form>
聽9聽聽聽聽</formset>
10</form-validation>

鍏朵腑key="lable.name "鍦ㄨ祫婧愭枃浠朵腑瀵瑰簲鐨勫唴瀹逛負(fù)錛歭able.name=name錛屽洜姝わ紝褰撴枃鏈涓病鏈夎緭鍏ヤ換浣曚俊鎭屾彁浜ょ殑鏃跺欙紝灝嗕細(xì)鍙嶉涓鏉ame is required.鐨勪俊鎭?br />
涓嬮潰寮濮嬪疄楠岋紝
瀹為獙鐨勭洰鐨勬槸錛氫緷嬈′嬌鐢?縐嶉獙璇丗orm鏉ュ疄鐜拌〃鍗曠殑楠岃瘉鍔熻兘錛?br />浠栦滑鍒嗗埆鏄細(xì)DynaValidatorForm錛孌ynaValidatorActionForm錛孷alidatorForm錛孷alidatorActionForm銆傝繖涔熸槸鍓嶉潰涓轟粈涔堣鍒涘緩4涓狝ctionForm鐨勭洰鐨勶紝璇︾粏閰嶇疆淇℃伅瑙佸墠闈truts-config.xml
鑰孞SP欏甸潰鍙湁涓涓紝灝辨槸閰嶇疆鏂囦歡涓殑input="/form/index.jsp
"

瀹為獙涓錛氱敱DynaValidatorForm鐨勫瓙綾籇VForm鏉ラ獙璇?br />


validation.xml鐨勫唴瀹逛負(fù)錛?br />
聽1<form-validation> 聽聽聽聽
聽2聽聽聽聽<formset>

聽3聽聽聽聽聽聽聽聽<form聽name="DVForm">
聽4聽聽聽聽聽聽聽聽聽聽聽聽<field聽property="name"聽depends="required">
聽5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽name="required"聽key="lable.name"/>
聽7聽聽聽聽聽聽聽聽聽聽聽聽</field>
聽8聽聽聽聽聽聽聽聽</form>
聽9聽聽聽聽</formset>
10</form-validation>

struts-config.xml鐨勫唴瀹逛負(fù)錛?br />
15聽聽聽聽< action
16聽聽聽聽聽聽attribute="DVForm"

17聽聽聽聽聽聽input="/form/index.jsp"
18聽聽聽聽聽聽name="DVForm"
19聽聽聽聽聽聽path="/index"
20聽聽聽聽聽聽scope="request"
21聽聽聽聽聽聽type="com.kook.struts.action.IndexAction"/>
22聽聽</action-mappings>

/form/index.jsp鐨勪富瑕佸唴瀹逛負(fù)錛?br />
1聽聽聽聽聽聽聽聽<html:javascript聽formName="DVForm"/>
2聽聽聽聽聽聽聽聽<html:form聽action="/index"onsubmit="return聽validateDVForm(this)">

<
html:javascript聽formName = " DVForm " />鐨刦ormName灞炴у搴旂殑鏄繘琛岄獙璇佺殑ActionForm鐨刵ame灞炴с?font style="BACKGROUND-COLOR: #ffffff">onsubmit="return聽validateDVForm(this)"涓哄浐瀹氬啓娉曪紝鏍煎紡涓猴細(xì)onsubmit="return聽validateXXX(this)"錛孹XX涓篎orm鐨刵ame灞炴э紝鍏朵腑棣栧瓧姣嶅ぇ鍐欏氨鍙互浜?jiǎn)銆?br />

瀹為獙浜岋細(xì) 鐢盫alidatorForm鐨勫瓙綾籚Form鏉ラ獙璇?br />
浠栫殑閰嶇疆淇℃伅鍙渶瑕佸皢瀹為獙涓涓簳鑹蹭負(fù)榛勮壊楂樹寒閮ㄥ垎鐨凞VForm鎹㈡垚VForm灝卞彲浠ヤ簡(jiǎn)錛屼粬浠殑鍖哄埆鍙湪浜庝竴涓槸鍔ㄦ佺殑錛屼竴涓槸闈炲姩鎬佺殑銆?br />

瀹為獙涓?鐢盌ynaValidatorActionForm鐨勫瓙綾籇VAForm鏉ラ獙璇?br />
璇ュ疄楠岀殑閰嶇疆淇℃伅鍙渶瑕佸皢瀹為獙涓struts-config.xml涓簳鑹蹭負(fù)榛勮壊楂樹寒閮ㄥ垎鐨凞VForm鎹㈡垚DVAForm灝卞彲浠ヤ簡(jiǎn)錛屽叾嬈℃槸淇敼validation.xml鐨勫唴瀹?鍏蜂綋濡備笅錛?br />
1<form-validation>聽聽聽聽
2聽聽聽聽<formset>
3聽聽聽聽聽聽聽聽<form聽name="/index">
4聽聽聽聽聽聽聽聽聽聽聽聽<field聽property="name"聽depends="required">
5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽name="required"聽key="lable.name"/>
6聽聽聽聽聽聽聽聽聽聽聽聽</field>
7聽聽聽聽聽聽聽聽</form>
8聽聽聽聽</formset>
9</form-validation>

鍖哄埆鏄?font style="BACKGROUND-COLOR: #ffff00"><form聽name="/index">涓殑name灞炴т笉鍐嶅搴旂殑鏄獙璇丗orm鐨刵ame灞炴э紝鑰屾槸鍏剁浉瀵圭殑action綾葷殑path灞炴?br />
瀹為獙鍥涳細(xì)鐢盫alidatorActionForm鐨勫瓙綾籚AForm鏉ラ獙璇?br />
涓庡疄楠屼笁涓鏍鳳紝鎹㈡帀struts-config.xml涓簳鑹蹭負(fù)榛勮壊楂樹寒閮ㄥ垎鐨凞VAForm鎹㈡垚VAForm灝卞彲浠ヤ簡(jiǎn)錛寁alidation.xml鏂囦歡涓殑鍐呭涓庡疄楠屼笁淇濇寔涓鑷達(dá)紝<form聽name="/index">涓殑name灞炴т笉鍐嶅搴旂殑鏄獙璇丗orm鐨刵ame灞炴э紝鑰屾槸鍏剁浉瀵圭殑action綾葷殑path灞炴с?br />
涓嶈繃鐢―ynaValidatorActionForm鍜孷alidatorActionForm鐨勬椂鍊欏ソ璞′笉鑳戒嬌鐢ㄥ鎴風(fēng)楠岃瘉錛屽彧鑳戒嬌鐢ㄦ湇鍔″櫒绔獙璇併傝繕寰楁湁楂樻墜鎸囩偣錛屽洜姝ゅ墠鍙癑SP欏甸潰寰楁敼鎴愶細(xì)

1聽聽聽聽聽聽聽聽<html:form聽action="/index">
2聽聽聽聽聽聽聽聽聽聽聽聽name聽:聽<html:text聽property="name"/><html:errors聽property="name"/><br/>
3聽聽聽聽聽聽聽聽聽聽聽聽<html:submit/>
4聽聽聽聽聽聽聽聽</html:form>

涓嬮潰鏉ヤ粙緇嶄竴涓媣alidation.xml鏂囦歡涓殑涓浜涘厓绱犱俊鎭細(xì)

1銆?lt;global>涓畾涔夌殑<constant>鍜?lt;formset>涓畾涔夌殑<constant>
鍓嶈呰〃紺哄湪鍏ㄥ眬鑼冨洿鍐呭畾涔夊父閲忥紝鍙互鍦╲alidation.xml鏂囦歡涓殑鍏朵粬<formset>涓闂傝闂牸寮忎負(fù)${constantName}
鍚庤呰〃紺哄眬閮ㄧ殑甯擱噺瀹氫箟錛屽彧鑳藉湪澹版槑浠栫殑<formset>涓嬌鐢ㄣ?br />
2銆?lt;field>鍏冪礌涓殑鍑犱釜瀛愬厓绱狅細(xì)
<!ELEMENT field (msg|arg|arg0|arg1|arg2|arg3|var)*>
涔熷氨鏄浠栫殑鎵鏈夊瓙鍏冪礌閮藉彲浠ユ槸0-n涓紝榪欎竴鐐瑰拰瀛欏崼鐞寸殑涔︽湁鍑哄叆錛屼互姝や負(fù)鍑嗐?br />
msg鍏冪礌
<msg name="" key="" bundle="" resource=""/>

name錛氳〃紺洪獙璇佽鍒欑殑閫昏緫鍚嶏紱
key錛氬搴旇祫婧愭枃浠朵腑鐨刱ey錛?br />bundle錛氭寚瀹氫粠鍝釜璧勬簮鏂囦歡鑾峰彇key鍊鹼紝緙虹渷鏃朵負(fù)榛樿鐨勮祫婧愭枃浠訛紱
resource錛氫負(fù)true鏄〃紺轟粠璧勬簮鏂囦歡涓幏鍙杒ey灞炴у搴旂殑淇℃伅錛屼負(fù)false鏃惰〃紺虹洿鎺ユ樉紺簁ey灞炴х殑鍐呭錛屽拰璧勬簮鏂囦歡鏃犲叧銆傜己鐪佷負(fù)true銆?br />
Strust妗嗘灦涓寚瀹氫簡(jiǎn)涓浜涘父鐢ㄨ鍒欑殑瀵瑰簲鏂囨湰錛岄獙璇佹鏋墮粯璁ゆ槸浠庤繖浜涘搴旂殑鏂囨湰涓鍙栦俊鎭備絾鏄垜浠彲浠ラ氳繃鎸囧畾msg鍏冪礌鏉ヤ粠鑷畾涔夌殑璧勬簮鏂囦歡鎴栬呮槸key涓潵鑾峰彇娑堟伅銆?br />
arg.....鍏冪礌鐢ㄦ潵鎸囧畾澶嶅悎鏂囨湰涓殑鍙傛暟錛屼緷嬈″搴斻備粬浠殑灞炴у拰msg鐨勫睘鎬у緢鐩鎬技錛岀敤娉曚篃鏄竴鏍風(fēng)殑銆?br />
var鍏冪礌
聽1聽聽聽聽<formset>
聽2聽聽聽聽聽聽聽聽<form聽name="/index">
聽3聽聽聽聽聽聽聽聽聽聽聽聽<field聽property="name"聽depends="required">
聽4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽name="required"聽key="${var:required}"聽resource="false"/>
聽5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var>
聽6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-name>required</var-name>
聽7聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-value>xx</var-value>
聽8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</var>
聽9聽聽聽聽聽聽聽聽聽聽聽聽</field>
10聽聽聽聽聽聽聽聽</form>
11聽聽聽聽</formset>


濡傛灉鎵ц浜?jiǎn)璇ラ獙璇佺殑璇濆Q岃緭鍑虹殑緇撴灉涓猴細(xì)xx is required.








kook 2006-09-25 20:50 鍙戣〃璇勮
]]>
Struts瀛︿範(fàn)絎旇http://m.tkk7.com/kook/articles/71710.htmlkookkookMon, 25 Sep 2006 04:26:00 GMThttp://m.tkk7.com/kook/articles/71710.htmlhttp://m.tkk7.com/kook/comments/71710.htmlhttp://m.tkk7.com/kook/articles/71710.html#Feedback0http://m.tkk7.com/kook/comments/commentRss/71710.htmlhttp://m.tkk7.com/kook/services/trackbacks/71710.html

涓銆?/span> 濡備綍鑾峰緱 ApplicationResources.properties 涓殑淇℃伅


1
銆佽幏寰楅粯璁ょ殑璧勬簮鏂囦歡

1MessageResources聽messages聽= 聽getResources(request);
2

3String聽title聽=聽messages.getMessage("hello.jsp.title" );
4



2
銆佽幏寰楅粯璁ょ殑璧勬簮鏂囦歡

1MessageResources聽resources聽= 聽(MessageResources)聽request.
2

3 getAttribute(Globals.MESSAGES_KEY);
4



3
銆佽幏寰楁寚瀹?span lang="EN-US">key鐨勮祫婧愭枃浠?/font>

MessageResources聽messages聽 = 聽getResources(request, " en " );

鍏跺疄鏂規(guī)硶涓鏈川涓婂氨鏄皟鐢ㄦ柟娉曚簩鏉ヨ幏寰?/span> MessageResources 鐨勫疄渚嬨?span lang="EN-US">

棣栧厛鑾峰緱涓涓皝瑁呬簡(jiǎn) ApplicationResources.properties 淇℃伅

鐨勫璞?/span> MessageResources 鐨勫疄渚?span lang="EN-US">messages錛岀劧鍚庤皟鐢?span lang="EN-US">getMessage(key);鏉ヨ幏寰?span lang="EN-US">key鐨勫?span lang="EN-US">

浜屻?/span> 濡備綍鎵撳寘鍙戝竷涓涓?span lang="EN-US">WEB搴旂敤

鍦?span lang="EN-US">DOC涓嬭漿鍒板簲鐢ㄧ殑鏍圭洰褰曟墽琛?span lang="EN-US">jar cvf appName.war *.*

涓夈?/span> 濡備綍鍦?span lang="EN-US">formbean涓嬮獙璇佽〃鍗?span lang="EN-US">

聽1ActionErrors聽errors聽=new 聽ActionErrors();
聽2

聽3聽聽聽聽String聽array[]聽=new聽String[2 ];
聽4

聽5聽聽聽聽array[0]聽="xx" ;
聽6

聽7聽聽聽聽array[1]聽="hh" ;
聽8

聽9聽聽聽聽if(name==null||聽name.length()<1 )
10

11 聽聽聽聽{
12

13聽聽聽聽聽聽聽errors.add("name",new聽ActionMessage("kong",false ));
14

15聽聽聽聽//瀵瑰簲鐨刱ey涓篽ello,涓攈ello涓哄姩鎬佸鍚堟秷鎭紝array鏁扮粍鐢ㄦ潵鏇挎崲澶嶅悎娑堟伅涓殑鍙傛暟
16
17聽聽聽聽聽聽聽errors.add("name",new聽ActionMessage("hello" ,array));
18

19 聽聽聽聽}
20

21return 聽errors;
22

23

鍦?span lang="EN-US">inputJSP涓敤 <html:errors/> 鑾峰彇騫舵樉紺?span lang="EN-US">

鍥涖?/span> 鍦?span lang="EN-US">action涓嬪鐞嗕笟鍔¢昏緫鏃惰繑鍥炵殑閿欒淇℃伅

聽1ActionErrors聽errors聽= new聽ActionErrors();
聽2

聽3
String聽userName聽 =聽(String)((HelloForm)聽form).getUserName();
聽4

聽5

聽6

聽7
String聽badUserName聽="Monster ";
聽8

聽9

10

11
if聽(userName.equalsIgnoreCase(badUserName))聽{
12

13
聽聽聽聽聽errors.add("username",聽new聽ActionError("hello.dont.talk.to.monster ",聽badUserName聽));
14

15
聽聽聽聽聽saveErrors(request,聽errors);聽聽聽聽聽聽聽// 緇戝畾鍒皉equest瀵硅薄涓?br />16
17
聽聽聽聽聽return聽( new聽ActionForward(mapping.getInput()));
18

19
聽}
20


鍚屾牱鍦ㄧ浉搴旂殑JSP欏甸潰涓敤鐢?lt;html:errors/>
鑾峰彇騫舵樉紺?br />

浜斻?/span> JSP 涓浣曡闂?span lang="EN-US">action

1 銆?br />

< A聽href = " <%=request.getContextPath()聽%>/hello.do " > Link </ A >

2 銆佽嚜鍔ㄨ煩杞?br />


聽聽聽
A_JSP
欏甸潰錛?span lang="EN-US">

< logic:forward聽name = " gaga " />


B_struts-config.xml
璁劇疆錛?br />


< global - forwards聽 >

聽聽聽聽聽聽<
forward聽name = " gaga " 聽path = " /hello.do " ></ forward
>

</
global - forwards >


鍏?/font>
閰嶇疆閿欒欏甸潰鍜屽紓甯擱〉闈細(xì)銆婄簿閫?span lang="EN-US">Struts銆?/font> page_75


涓冦?/font>
濡備綍鍦?span lang="EN-US">Web搴旂敤涓闂?span lang="EN-US">Locale瀵硅薄


1
銆佷粈涔堟槸Locale錛?br />
java.util.Locale 綾葷殑瀹炰緥浠h〃涓縐嶇壒瀹氱殑璇█鐜鍜屽湴鍖?br />


2
濡備綍鑾峰緱Locale錛?span lang="EN-US">

聽聽聽聽聽聽聽 鏋勯犲嚱鏁?span lang="EN-US">

Locale聽locale聽 = new 聽Locale( " en " , " US ");
Locale聽locale聽
= new 聽Locale( " ch " , " CH " );


聽聽聽聽
璁塊棶java.util.Locale綾葷殑闈?rùn)鎬佸父閲忔潵鑾峰緱甯哥敤鐨?/span> Locale 瀹炰緥

Locale聽locale聽 = 聽Locale.CHINA;聽聽聽聽聽(zh_CN)
Locale聽locale聽
= 聽Locale.CHINESE;聽聽聽(zh)

聽聽聽聽聽聽聽 閫氳繃HttpServletRequest瀵硅薄鏉ヨ幏寰楀鎴風(fēng)鐨?span lang="EN-US">Locale

Locale聽locale聽 = 聽request.getLocale();聽聽聽// 鑾峰緱浼樺厛浣跨敤鐨?/span>Locale
System.out.println(locale);

// 鑾峰緱鎵鏈塋ocale錛屼粠浼樺厛綰ч珮鐨勪緷嬈¢檷搴忔帓鍒楀茍鎵撳嵃鍑烘潵銆?/span>
Enumeration聽locales聽 = 聽request.getLocales();

while
聽(locales.hasMoreElements())聽{
聽聽聽聽聽聽Locale聽element聽
=
聽(Locale)聽locales.nextElement();
聽聽聽聽聽聽System.out.println(element);
}


聽聽聽聽聽聽聽
閫氳繃HttpSession瀵硅薄鏉ヨ幏寰?span lang="EN-US">Locale

HttpSession聽session聽 = 聽request.getSession();

Locale聽locale聽
=
聽(Locale)聽session.

getAttribute(Globals.LOCALE_KEY);

System.out.println(locale);

鑾峰緱Locale鐨勬柟娉曡繕鏈夊緢澶氾紝鍏跺疄鍦?span lang="EN-US">Web搴旂敤涓紝寰堝鑾峰緱Locale鐨勬柟娉曢兘鏄笉鍚岀▼搴︾殑鎴栬呮槸鐩存帴鐨勬垨鑰呮槸闂存帴鍦ㄨ皟鐢?/span> request.getLocale(); 鏂規(guī)硶銆傚洜姝ゆ湁浜?/span> HttpServletRequest 錛屾垜浠彲浠ュ仛寰堝浜嬫儏銆?span lang="EN-US">



kook 2006-09-25 12:26 鍙戣〃璇勮
]]>
ActionMessages綾誨強(qiáng)鍏剁粦瀹氱殑緇勪歡http://m.tkk7.com/kook/articles/71626.htmlkookkookSun, 24 Sep 2006 18:54:00 GMThttp://m.tkk7.com/kook/articles/71626.htmlhttp://m.tkk7.com/kook/comments/71626.htmlhttp://m.tkk7.com/kook/articles/71626.html#Feedback0http://m.tkk7.com/kook/comments/commentRss/71626.htmlhttp://m.tkk7.com/kook/services/trackbacks/71626.html 棣栧厛鏉ヤ簡(jiǎn)瑙d竴涓婣ctionMessages綾葷殑緇撴瀯錛?br />



鍦ˋctionMessages涓寘鍚潃涓涓狧ashMap錛屽叾涓殑key灝辨槸add鏂規(guī)硶鐨刾roperty鍙傛暟錛岀劧鑰屼粬鐨勫煎搴旂殑鏄竴涓狝ctionMessageItem,ActionMessageItem鏄綾葷殑涓涓唴閮ㄧ被錛屽綋涓寘鍚簡(jiǎn)涓涓狝rrayList銆?br />鐢辨鍙錛屼竴涓猵roperty涓彲浠ュ寘鍚潃澶氫釜ActionMessage,榪欎簺ActionMessage閮藉皢淇濆瓨鍦ˋctionMessageItem鐨凙rrayList涓?br />

聽1publicvoid 聽add(String聽property,聽ActionMessage聽message)聽{
聽2

聽3聽聽聽聽聽聽聽聽ActionMessageItem聽item聽= 聽(ActionMessageItem)聽messages.get(property);
聽4聽聽聽聽聽聽聽聽List聽list聽=null
;
聽5

聽6聽聽聽聽聽聽聽聽if聽(item聽==null )聽{
聽7聽聽聽聽聽聽聽聽聽聽聽聽list聽=new
聽ArrayList();
聽8聽聽聽聽聽聽聽聽聽聽聽聽item聽=new聽ActionMessageItem(list,聽iCount++
,聽property);
聽9

10 聽聽聽聽聽聽聽聽聽聽聽聽messages.put(property,聽item);
11聽聽聽聽聽聽聽聽}聽else
聽{
12聽聽聽聽聽聽聽聽聽聽聽聽list聽=
聽item.getList();
13
聽聽聽聽聽聽聽聽}
14

15 聽聽聽聽聽聽聽聽list.add(message);
16

17聽聽聽聽}



姣忔娣誨姞鏂扮殑ActionMessage涓紝ActionMessages綾諱細(xì)鍒ゆ柇HashMap涓殑get(property)鏄惁瀛樺湪錛屽鏋滃瓨鍦ㄧ殑璇濓紝灝辮幏寰楄list聽=聽item.getList();騫舵妸ActionMessage娣誨姞鍒板叾涓傚鏋滀笉瀛樺湪錛屽氨浼?xì)鍒涘晦Z竴涓柊鐨刲ist聽=new 聽ArrayList();
鍐嶅皢鍐呭娣誨姞鍒板綋涓幓銆傛葷殑鏉ヨ錛孉ctionMessages灝辨槸涓涓繚瀛樹俊鎭殑瀹瑰櫒銆傞氬父ActionMessages鏄笉浼?xì)鍗曠嫭鋴社敤鐨勫Q屽拰浠栫浉鍏崇殑涓浜汼truts緇勪歡浼?xì)瀵瑰叾杩涜璁块棶鍜屾搷浣滃Q?br />
<html:errors>鏍囩

<html:errors>鏍囩鏄竴涓猄truts緇勪歡錛屼粬鐨勫唴閮ㄦ爣絳劇被瀵笰ctionMessages綾葷殑瀛愮被ActionErrors榪涜璁塊棶銆傞氳繃鍦╮equest鍜宻ession涓壘鍒癆ctionErrors鏉ヨ幏寰楃浉鍏充俊鎭傚湪姝や箣鍓嶏紝鍏堟潵浜?jiǎn)瑙d?lt;html:errors>鏍囩鐨勫嚑涓噸瑕佸睘鎬э細(xì)

name灞炴э細(xì)
鎸囧畾ActionMessages鍦╮equest鍜宻ession鑼冨洿鍐呯殑灞炴ey.榛樿鍊間負(fù)Globals.ERROR_KEY銆傜敱姝ゆ垜浠彲浠ヤ簡(jiǎn)瑙e埌Struts鏄姝や繚瀛樺拰鑾峰彇ActionMessages鐨勶細(xì)

淇濆瓨錛?br />ActionErrors errors = new ActionErrors();

request.setAttribute(Globals.ERROR_KEY ,errors);鎴栬?br />
session.setAttribute(Globals.ERROR_KEY ,errors);

鑾峰彇錛?br />ActionErrors errors = new ActionErrors();

errors = (ActionErrors)request.getAttribute(Globals.ERROR_KEY);鎴栬?br />
errors = (ActionErrors)session.getAttribute(Globals.ERROR_KEY);鎴栬?br />
璇ュ睘鎬ч氬父鎴戜滑涓嶇敤璁劇疆鍜屾洿鏀逛粬錛岀敤榛樿鍊煎氨鍙互鍟︺?br />
property灞炴э細(xì)
鐢ㄦ潵鎸囧畾娑堟伅鐨勫睘鎬э紝濡傛灉涓嶈緗灞炴э紝閭d箞<html:errors>鏍囩灝嗘樉紺篈ctionMessages涓殑鎵鏈夊睘鎬с傚鏋滆緗簡(jiǎn)璇ュ睘鎬э紝鍒欏彧鏄劇ずHashMap涓璌ey涓簆roperty灞炴у肩殑ArrayList闆嗗悎銆傞氬父錛屾垜浠湪璋冪敤ActionMessages鐨刟dd鏂規(guī)硶鏃訛紝浼?xì)鎸囧畾add鏂規(guī)硶鐨刾roperty鍙傛暟錛屼篃灝辨槸絎竴涓弬鏁幫紝灝嗙浉鍏充俊鎭坊鍔犲埌鎸囧畾鐨刾roperty瀵瑰簲鐨凙rrayList涓傞偅涔堟垜浠鏄劇ず鐩稿叧淇℃伅鏃訛紝灝卞彲浠ユ寚瀹氳緭鍑?lt;html:errors>鏍囩鐨刾roperty灞炴у搴旂殑ArrayList錛岃繖涓や釜property鏄浉浜掑搴旂殑銆?br />
bundle灞炴э細(xì)
鎸囧畾璧勬簮鏂囦歡鐨刱ey灞炴с傜己鐪佺殑鎯呭喌涓嬭皟鐢ㄧ殑鏄粯璁ょ殑璧勬簮鏂囦歡Application.properties銆?br />濡傚湪struts-config.xml涓0鏄庣殑璧勬簮鏂囦歡淇℃伅濡備笅錛?/font>

聽 < message - resources聽parameter = " com.kook.struts.ApplicationResources " />
聽聽
< message - resources聽key = " ch " 聽parameter = " com.kook.struts.ApplicationResources_ch " />
聽聽
< message - resources聽key = " en " 聽parameter = " com.kook.struts.ApplicationResources_en " />

瀵瑰簲鐨刟dd鏂規(guī)硶濡備笅錛?/font>

1ActionErrors聽errors聽=new 聽ActionErrors();
2if(name==null||聽name.length()<1
)
3
{
4聽聽聽聽聽聽errors.add("name",new聽ActionMessage("kong"
));
5
聽}
6return聽errors;

new 聽ActionMessage( " kong " )瀵瑰簲鍦╧ey="en"鐨勮祫婧愭枃浠朵腑涓猴細(xì)

kong=bu neng wei kong

JSP涓殑<html:errors>鏍囩錛?/font>

1<html:errors聽property="name"聽bundle="en"/>

榪欐椂鍊欏皢浼?xì)杈撳嚭key="en"鐨勮祫婧愭枃浠朵腑鐨?kong"瀵瑰簲鐨勪俊鎭細(xì)bu neng wei kong

<html:messages>鏍囩

<html:messages>鏍囩鏄敤鏉ュ湪JSP欏甸潰涓婅緭鍑轟竴鏉℃秷鎭殑銆傞氬父鎴戜滑鍦ㄥ仛娣誨姞鏁版嵁鐨勬椂鍊欙紝濡傛灉娣誨姞鎴愬姛錛岄氬父浼?xì)鍦ㄥ墠鍙皺宓闈㈠弽棣埦l欑敤鎴蜂竴鏉♀滄坊鍔犳垚鍔熲濈殑淇℃伅錛岃繖鏃跺欐垜浠氨鍙互鐢ㄥ埌榪欎釜鏍囩銆?br />
name灞炴э細(xì)

鏄寚ActionMessages瀵硅薄淇濆瓨鍦╮equest鎴杝ession涓殑灞炴ey錛屽嵆request.setAttribute("heihei", messages);涓殑絎竴涓弬鏁般?br />
message灞炴э細(xì)濡傛灉涓簍rue錛岃〃紺烘槸浠巖equest鎴杝ession涓彇寰梜ey涓篏lobals.MESSAGE_KEY鐨凙ctionMessages瀵硅薄錛屾鏃惰鏍囩璁劇疆鐨刵ame灞炴х殑鏃犳晥鐨勩傚鏋滀負(fù)false錛岃〃紺轟粠璇ユ爣絳劇殑name灞炴ф潵鑾峰緱request鎴杝ession鐨刱ey鍊箋傜己鐪佸煎氨涓篺alse銆?br />
id灞炴э細(xì)榪欎釜灞炴у氨涓嶈浜?jiǎn)锛寢個(gè)绱㈠嚭ActionMessages闆嗗悎涓崟涓璞$殑鏍囪瘑錛屼粬鍜?lt;logic:iterate>鐨刬d鏄悓涓涓剰鎬濄?br />
灝忓疄楠岋細(xì)

鍦╝ction涓殑execute鏂規(guī)硶涓坊鍔犲涓嬩唬鐮侊細(xì)

1ActionMessages聽messages聽=new聽ActionMessages();
2聽聽聽聽聽聽聽聽
3 messages.add("",聽new聽ActionMessage("haha",false));
4聽聽聽聽聽聽聽聽
5this.saveMessages(request,聽messages);聽聽聽聽聽聽聽聽
6
7returnnew聽ActionForward("/form/hello.jsp");

琛ㄧず寰ActionMessages瀵硅薄涓坊鍔犱竴鏉′俊鎭?span style="COLOR: #0000ff">new聽ActionMessage("haha",false)錛屽茍淇濆瓨鍦╮equest褰撲腑this.saveMessages(request,聽messages);聽聽閭d箞鍦ㄨ繖涓柟娉曚腑錛屼粬鏄浣曚繚瀛楢ctionMessage瀵硅薄鐨勫憿錛熶笅闈㈡槸聽saveMessages聽鏂規(guī)硶鐨勬簮浠g爜錛毬?/span>

聽1protectedvoid聽saveMessages(
聽2聽聽聽聽聽聽聽聽HttpServletRequest聽request,
聽3聽聽聽聽聽聽聽聽ActionMessages聽messages)聽{
聽4
聽5聽聽聽聽聽聽聽聽//聽Remove聽any聽messages聽attribute聽if聽none聽are聽required
聽6聽聽聽聽聽聽聽聽if聽((messages聽==null)聽||聽messages.isEmpty())聽{
聽7聽聽聽聽聽聽聽聽聽聽聽聽request.removeAttribute(Globals.MESSAGE_KEY);
聽8聽聽聽聽聽聽聽聽聽聽聽聽return;
聽9聽聽聽聽聽聽聽聽}
10
11聽聽聽聽聽聽聽聽//聽Save聽the聽messages聽we聽need
12聽聽聽聽聽聽聽聽request.setAttribute(Globals.MESSAGE_KEY,聽messages);
13聽聽聽聽}

瑙傚療榪欐浠g爜涓嶉毦鍙戠幇錛屼粬鏄皢ActionMessages瀛樻斁鍦╧ey涓篏lobals.MESSAGE_KEY褰撲腑鐨勶紝鍥犳鎴戜滑鍦ㄨ皟鐢ˋctionMessages鐨刟dd鏂規(guī)硶鏃訛紝浠栫殑property鍙傛暟錛坅dd鏂規(guī)硶鐨勭涓涓弬鏁幫級(jí)灝辨病鏈夊繀瑕佽鎴戜滑鑷繁鍘繪墜鍔ㄦ寚瀹氫簡(jiǎn)錛屽洜涓轟笉璁轟綘鎸囧畾浠涔堝弬鏁幫紝鍙璋冪敤浜?jiǎn)saveMessages鏂規(guī)硶錛堣繖鏄墠鎻愶級(jí)錛屼粬鍙細(xì)灝嗕俊鎭繚瀛樺湪鍥哄畾鐨勫父閲弅ey涓?br />榪欐椂鍓嶅彴鐨刪ello.jsp欏甸潰鐨勬樉紺轟唬鐮佷負(fù)錛?/p>

1<html:messages聽id="a"聽message="true">
2聽聽聽聽<bean:write聽name="a"/>
3</html:messages>

涓婇潰浠g爜璁劇疆浜?jiǎn)message灞炴э紝琛ㄧず浠嶨lobals.MESSAGE_KEY涓幏鍙栦俊鎭紝鍓嶉潰涔熸湁鎻愬埌錛屾鏃舵寚瀹歯ame灞炴ф槸鏃犳晥鐨勩?br />
閭e鏋滄垜鎯沖彧鏄劇ず鎴戣嚜宸辨寚瀹氱殑淇℃伅鎬庝箞鍔炲憿錛?br />
鎴戜滑鍙互涓嶄嬌鐢╯aveMessages鏂規(guī)硶鑰屼嬌鐢ㄦ渶鍘熷鐨勫姙娉曪紝閫氬父鏈鍘熷鐨勫姙娉曚篃鏄渶鏈夋晥鐨?Struts鍏跺疄鏄皝瑁呬簡(jiǎn)璁稿鏈鍘熷鐨勫疄鐜般傛垜浠厛灝哸ction涓殑浠g爜鏀逛負(fù)錛?/p>

ActionMessages聽messages聽 = new 聽ActionMessages();
聽聽聽聽聽聽聽聽
messages.add(
"" ,聽 new 聽ActionMessage( " haha " , false ));
聽聽聽聽聽聽聽聽
request.setAttribute(
" show " ,聽messages);

return new 聽ActionForward( " /form/hello.jsp " );

鐒跺悗鍦↗SP欏甸潰涓寚瀹歯ame灞炴э紝鑰屽皢message璁句負(fù)false灝卞彲浠ヤ簡(jiǎn)錛?/p>

1<html:messages聽id="a"聽name="show">
2聽聽聽聽<bean:write聽name="a"/>
3</html:messages>

榪欓噷鏄洿鎺ョ渷鐣ヤ簡(jiǎn)message灞炴э紝鍥犱負(fù)浠栫殑緙虹渷鍊煎氨鏄痜alse銆傝繖鏍峰氨鍙互杈懼埌杈撳嚭鑷繁鎸囧畾灞炴х殑淇℃伅鍟︼紒






kook 2006-09-25 02:54 鍙戣〃璇勮
]]>
璧勬簮鏂囦歡涓鍚堟秷鎭殑瀹炵幇http://m.tkk7.com/kook/articles/71624.htmlkookkookSun, 24 Sep 2006 16:48:00 GMThttp://m.tkk7.com/kook/articles/71624.htmlhttp://m.tkk7.com/kook/comments/71624.htmlhttp://m.tkk7.com/kook/articles/71624.html#Feedback0http://m.tkk7.com/kook/comments/commentRss/71624.htmlhttp://m.tkk7.com/kook/services/trackbacks/71624.html鍦⊿truts妗嗘灦涓紝寰寰闇瑕佸璧勬簮鏂囦歡榪涜閰嶇疆錛屼粠鑰屽疄鐜板浗闄呭寲鐨勭洰鐨勩?br />
璧勬簮鏂囦歡涓厑璁鎬嬌鐢ㄩ潤(rùn)鎬佸拰鍔ㄦ佹枃鏈傞氳繃鍔ㄦ佹枃鏈潵鍔ㄦ佺殑璁懼畾鍏舵樉紺虹殑鍐呭錛屼粠鑰岃兘鏇村ソ鐨勫噺灝戜唬鐮佺殑鍐椾綑錛岀劧鑰屽姩鎬佹枃鏈腑鐨勫弬鏁版寚瀹氾紝鏄氳繃浠涔堟潵瀹炵幇鐨勫憿錛?br />
涓嬮潰鏄疉pplicationResources.properties璧勬簮鏂囦歡涓殑鍐呭錛?br />
1#聽Resources聽for聽parameter聽'com.kook.struts.ApplicationResources'
2#聽Project聽P/ Demo_242103
3

4
5
6hello={0}聽is聽the聽brother聽of聽{1 }
7hello.brother=
zhangsan
8hello.person=lisi

閫氬父鎴戜滑鍙互鍦ㄩ獙璇佹鏋剁殑閰嶇疆鏂囦歡涓潵閰嶇疆鍏跺姩鎬佸弬鏁扮殑鍊鹼紝濡傦細(xì)

1<field聽property="name"聽depends="required">
2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽name="required"聽key="hello.brother"/>
3</field>

浣嗘槸鍏蜂綋鐨勫疄鐜板彲浠ラ氳繃java.text.MessageFormat綾繪潵瀹炵幇

1聽聽聽聽聽聽聽MessageResources聽messages聽= 聽getResources(request);
2聽聽聽聽聽聽聽聽String聽title聽=聽messages.getMessage("hello"
);
3聽聽聽聽聽聽聽聽String[]聽arr聽=new聽String[2
];
4聽聽聽聽聽聽聽聽arr[0]聽=聽messages.getMessage("hello.brother"
);
5聽聽聽聽聽聽聽聽arr[1]聽=聽messages.getMessage("hello.person"
);
6聽聽聽聽聽聽聽聽String聽newMessage聽=
聽MessageFormat.format(title,聽arr);
7聽聽聽聽聽聽聽聽System.out.println(newMessage);

鏈鍚庤緭鍑猴細(xì)zhangsan is the brother of lisi



kook 2006-09-25 00:48 鍙戣〃璇勮
]]>
logic:present 鍜?logic:empty鏍囩http://m.tkk7.com/kook/articles/71605.htmlkookkookSun, 24 Sep 2006 14:35:00 GMThttp://m.tkk7.com/kook/articles/71605.htmlhttp://m.tkk7.com/kook/comments/71605.htmlhttp://m.tkk7.com/kook/articles/71605.html#Feedback0http://m.tkk7.com/kook/comments/commentRss/71605.htmlhttp://m.tkk7.com/kook/services/trackbacks/71605.htmllogic:present 鍜?logic:empty浠栦滑鐨勭敤娉曞ぇ鑷寸浉鍚岋紝鍞竴鐨勪笉鍚岀偣鏄細(xì)涓よ呭湪瀵圭┖瀛楃涓茬殑澶勭悊涓婂瓨鍦ㄧ潃涓嶅悓銆?br />

涓嬮潰涓篿ndex.jsp涓殑浠g爜錛?br />
聽1<logic:notPresent聽name="users">
聽2聽聽notpresent
聽3</logic:notPresent>
聽4<logic:notEmpty聽name="users">
聽5聽聽notempty
聽6</logic:notEmpty>
聽7<logic:empty聽name="users">
聽8聽聽empty
聽9</logic:empty>
10<logic:present聽name="users">
11聽聽present
12</logic:present>


褰撶涓嬈¤闂JSP鐨勬椂鍊欙紝鐢變簬users娌℃湁瀹氫箟錛屽茍涓斾篃涓嶅湪page,request,session,application浠諱綍涓涓綔鐢ㄥ煙涓紝鍥犳杈撳嚭鐨勭粨鏋滀負(fù)notpresent,empty銆?br />
涓嬮潰鎴戜滑澧炲姞涓涓猘ction錛岃浠栧湪index.jsp涔嬪墠鎵ц錛岀劧鍚庡啀璺寵漿鍒癷ndex.jsp涓紝鍚屾椂鍦ㄨaction鐨別xecute鏂規(guī)硶涓鍔犲涓嬩唬鐮侊細(xì)
1String聽userName聽="";
2request.setAttribute("users",聽userName);
3returnnew聽ActionForward("/index.jsp");
4
榪欓噷灝唘serName淇濆瓨鍦╮equest涓紝key涓簎sers錛屽啀灝嗚姹傝漿鍙戣嚦index.jsp涓紝浣嗘槸userName鐨勫間負(fù)涓涓┖瀛楃涓詫紝杞彂榪囧悗錛岃緭鍑虹殑鍊間負(fù)錛歟mpty,present

榪欓噷鎴戜滑鍐嶅仛涓嬈℃敼鍔紝灝哸ction鐨別xecute鏂規(guī)硶涓殑浠g爜鏀逛負(fù)錛?br />
1String聽userName聽=null;
2request.setAttribute("users",聽userName);
3returnnew聽ActionForward("/hello.jsp");
4
涓嶅悓鐨勬槸userName 涓嶅啀涓虹┖瀛楃涓蹭簡(jiǎn)錛岃屾槸null鍊鹼紝褰撹漿鍙戣嚦index.jsp鍚庯紝杈撳嚭鐨勫間負(fù)錛歯otpresent,empty 銆?br />
瀵規(guī)瘮榪欏嚑嬈℃敼鍔紝鎴戜滑鍙互寰楀嚭緇撹錛?br />
瀵逛簬娌℃湁鍦╬age,request,session,application涓畾涔夋垨鑰呮槸娌℃湁鍒嗛厤鍐呭瓨絀洪棿(null鍊?鐨勫彉閲忥紝榪欎袱涓爣璁板鐞嗙殑鏂規(guī)硶鏄竴鑷寸殑錛岄兘浼?xì)璁や负姝ゅ彉閲忎笉瀛樺?notpresent)鎴栬呬負(fù)絀?empty)銆傝屽浜庣┖瀛楃涓?"鍊鹼紝浠栦滑鐨勫鐞嗗氨涓嶄竴鏍蜂簡(jiǎn)錛宭ogic:present 鏍囪璁や負(fù)絀哄瓧絎︿覆浠嶇劧鏄瓨鍦ㄧ殑錛屼篃灝辨槸璇達(dá)紝鍙鏄紩鐢ㄤ簡(jiǎn)涓鍧楀唴瀛樼┖闂寸殑鍙橀噺錛宭ogic:present 灝變細(xì)榪斿洖present 錛涜宭ogic:empty鍒欒涓虹┖瀛楃涓蹭粛鐒朵負(fù)絀猴紝鐢辨寰楀嚭錛屽湪logic:empty鐪嬫潵錛屽彉閲忎笉浠呬粎瑕佸紩鐢ㄤ竴鍧楀唴瀛樼┖闂達(dá)紝鑰屼笖璇ュ湴鍧絀洪棿鐨勫間笉鑳戒負(fù)絀哄瓧絎︿覆錛屽惁鍒欓兘璁や負(fù)璇ュ彉閲忎負(fù)絀猴紝閮戒細(xì)榪斿洖empty


kook 2006-09-24 22:35 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产亚洲人成在线播放| 一级毛片大全免费播放下载 | 久久久久亚洲av无码专区蜜芽| 亚洲精品中文字幕乱码影院| 精品亚洲成A人在线观看青青| 国产午夜无码精品免费看动漫| 国产精品久久久久久久久久免费| 亚洲精品国产电影| 亚洲黄色免费观看| 人妻仑刮八A级毛片免费看| 久久久久久夜精品精品免费啦| 国产在线ts人妖免费视频| 亚洲人成电影在线天堂| 老司机午夜精品视频在线观看免费| 99视频在线精品免费| 免费一级毛片不卡在线播放| 亚洲视频一区网站| 国产JIZZ中国JIZZ免费看| 黄色成人网站免费无码av| 亚洲av之男人的天堂网站| 国产AV无码专区亚洲AV琪琪| 91九色老熟女免费资源站| 久久亚洲高清综合| 成人黄软件网18免费下载成人黄18免费视频| 亚洲国产精品第一区二区三区 | 久久久久亚洲AV无码网站| 鲁啊鲁在线视频免费播放| 在线观看视频免费完整版| 亚洲色成人网站WWW永久| 色婷婷六月亚洲综合香蕉| 亚洲视频免费一区| 亚洲精品乱码久久久久久中文字幕| 亚洲国产aⅴ成人精品无吗| 最近中文字幕免费mv在线视频| 亚洲精品国产精品乱码不卡| 亚洲中文字幕无码爆乳app| 三年片在线观看免费观看大全动漫| 亚洲日本中文字幕天堂网| 亚洲AV成人无码网天堂| 久久精品a一国产成人免费网站 | 婷婷亚洲综合五月天小说在线|