涓夈佽嚜瀹氫箟鏍¢獙閫昏緫
姣曠珶Struts鎻愪緵鐨勬牎楠岄昏緫鏈夐檺錛屼笉鍙兘婊¤凍鎵鏈夌殑寮鍙戦渶瑕侊紝鍥犳鏈夋椂蹇呴』瀵瑰叾榪涜鎵╁睍銆傝繖閲屼婦涓涓疄闄呴」鐩腑鐨勪緥瀛愶細鏍¢獙鐮佹鏌ャ傜幇鍦ㄥ緢澶氱綉绔欎負浜嗛槻姝㈡伓鎰忕殑欏甸潰鍒鋒柊鏀誨嚮錛岄兘浣跨敤浜嗗浘鐗囧艦寮忕殑鏍¢獙鐮侊紝濡傦細

琛ㄥ崟鎻愪氦鍚庨渶瑕佹鏌ユ牎楠岀爜錛堝瓨鍦╮equest鎴杝ession閲岋級鍜岀敤鎴瘋緭鍏ユ槸鍚︿竴鑷達紝浠g爜濡備笅錛?/P>
1
public class MyValidator
{
2
private static Logger logger = Logger.getLogger(Constants.CON_LOGGER_NAME);
3
4
public static boolean validateCodeInput(Object obj,ValidatorAction action,Field field,
5
ActionMessages errors,HttpServletRequest req)
{
6
String code = (String)req.getSession().getAttribute(Constants.SESSION_CHECKSUM_CODE);
7
String input = ValidatorUtils.getValueAsString(obj,field.getProperty());
8
9
logger.debug("Code: " + code + ", input: " + input);
10
if(code.equalsIgnoreCase(input))
11
return true;
12
else
{
13
errors.add(field.getKey(),Resources.getActionMessage(req,action,field));
14
return false;
15
}
16
}
17
}
娉ㄩ噴錛?BR>1銆佺1琛岋細MyValidator娌℃湁浠諱綍鐖剁被錛岃繍琛屾椂Validator閫氳繃reflection鐢熸垚瀵硅薄
2銆佺4琛岋細鏍¢獙鏂規硶鍙殢鎰忓懡鍚嶏紝閫氳繃reflection璋冪敤錛屼絾鍙傛暟蹇呴』鎸夌収瑙勮寖
3銆佺6琛岋細浠巗ession涓彇鍑哄浘鐗囦腑鐨勫瓧絎︿覆
4銆佺7琛岋細寰楀埌鐢ㄦ埛杈撳叆鐨勫鹼紝Struts鍦ㄨ繖閲岀敤Field綾誨琛ㄥ崟瀛楁榪涜浜嗗皝瑁咃紝鑰孎ield鍏蜂綋灝佽鐨勫瓧孌靛湪validation.xml涓畾涔夛紝瑙?A HREF="/fidodido/archive/2006/03/07/34123.html">涓婄瘒
validator-rules.xml涓殑瀹氫箟錛?BR>
1
<validator name="codeinput"
2
classname="consultII.web.utils.MyValidator"
3
method="validateCodeInput"
4
methodParams="java.lang.Object,
5
org.apache.commons.validator.ValidatorAction,
6
org.apache.commons.validator.Field,
7
org.apache.struts.action.ActionMessages,
8
javax.servlet.http.HttpServletRequest"
9
msg="errors.code"/>
10
validation.xml涓殑瀹氫箟錛?BR>
<field property="input" depends="required,codeinput"/>

<field property="input" depends="required,codeinput"/>
鍦╯ervlet涓皢鏍¢獙鐮佸瓨鍏ession浼犻掔粰Validator錛?BR>
req.getSession().setAttribute(Constants.SESSION_CHECKSUM_CODE,code);
榪欐牱灝監K浜嗐?/P>
鍥涖佸皢鏍¢獙閫昏緫杞瘧鎴怞avaScript浠g爜
鐢變簬Validator鐨勪唬鐮佸湪鏈嶅姟鍣ㄧ琚墽琛岋紝鍥犳濡傛灉鏍¢獙璇鋒眰棰戠箒鐨勮瘽灝嗕細瀵規湇鍔″櫒绔犳垚涓嶅皬鐨勬ц兘鍘嬪姏銆傝冭檻鍒拌繖涓棶棰橈紝Struts涓彁渚涚殑鏍¢獙鏂規硶鍙互琚漿璇戞垚JavaScript浠g爜宓屽叆欏甸潰錛岃繖鏍鋒牎楠屽皢鍦ㄥ鎴風榪涜銆?BR>浣跨敤鏃訛紝鍙鍦ㄩ〉闈腑宓屽叆涓ゆ潯Struts html鏍囩搴撲腑鐨勬爣絳撅細
1
<html:javascript formName = "formName" />
2
<html:form action = "
" onsubmit = "return validateFormName(this);" />
鍏朵腑絎竴琛屽畾涔変簡闇瑕佽漿璇戠殑FormBean鍚嶏紝榪欓噷鏄渇ormName鈥濓紝絎簩琛屽湪璇ormBean灝佽鐨勮〃鍗曚笂娣誨姞onsubmuit浜嬩歡錛岃岃浜嬩歡璋冪敤鐨勫嚱鏁頒細鍦↗SP璇鋒眰鍒板鎴風鏃剁敱Validator妗嗘灦鑷姩鐢熸垚錛屽懡鍚嶈鍒欎負鈥渧alidateXXX鈥濓紝鍏朵腑鈥淴XX鈥濆氨鏄涓琛屼腑鐨刦ormName灞炴х殑鍊鹼紝榪欓噷鏄渇ormName鈥濓紝鍥犳鐢熸垚鐨勫嚱鏁板悕涓衡渧alidateFormName鈥濄?BR>鍏充簬涓鴻嚜瀹氫箟鐨刅alidator錛堝涓婃枃鐨凪yValidator錛夊垱寤篔S浠g爜錛屾垜娌℃湁瀹炵幇榪囷紝鎰熷叴瓚g殑璇濆彲浠ュ幓Struts瀹樼綉涓婃壘涓涓嬬浉鍏蟲枃妗c?img src ="http://m.tkk7.com/fidodido/aggbug/34130.html" width = "1" height = "1" />
]]>