RequestProcessor°üº¬ÁËStruts¿ØÖÆÆ÷µÄËùÓд¦ÀíÂß¼£¬Ëüµ÷Óò»Í¬µÄprocessXXX·½·¨À´Íê³É²»Í¬µÄ´¦Àí¡£Ï±íÁгöÆäÖм¸¸öÖ÷ÒªµÄ·½·¨£º
5¡¢ActionForm
¶ÔÓÚActionFormÄã¿ÉÒÔ´ÓÒÔϼ¸¸ö·½ÃæÀ´Àí½âËü£º
- ActionForm±íʾHTTP´°ÌåÖеÄÊý¾Ý£¬¿ÉÒÔ½«Æä¿´×÷ÊÇÄ£ÐͺÍÊÓͼµÄÖн飬Ëü¸ºÔð±£´æÊÓͼÖеÄÊý¾Ý¹©Ä£ÐÍ»òÕßÊÓͼʹÓá£Struts 1.1ÎĵµÖаÑËü±È×÷HTTPºÍActionÖ®¼äµÄ·À»ðǽ£¬ÕâÌåÏÖÁËActionForm¾ßÓеĹýÂ˱£»¤µÄ×÷Óã¬Ö»ÓÐͨ¹ýActionFormÑéÖ¤µÄÊý¾Ý²ÅÄܹ»·¢Ë͵½Action´¦Àí¡£
- ActionFormÊÇÓëÒ»¸ö»ò¶à¸öActionConfig¹ØÁªµÄJavaBean£¬ÔÚÏàÓ¦µÄactionµÄexecute·½·¨±»µ÷ÓÃ֮ǰ£¬ActionForm»á×Ô¶¯ÀûÓÃÇëÇó²ÎÊýÀ´Ìî³ä×Ô¼º£¨³õʼ»¯ÊôÐÔ£©¡£
- ActionFormÊÇÒ»¸ö³éÏóÀ࣬Äã±ØÐëͨ¹ý¼Ì³ÐÀ´ÊµÏÖ×Ô¼ºµÄÀà¡£
ActionFormÊ×ÏÈÀûÓÃÊôÐÔµÄgetterºÍsetter·½·¨À´ÊµÏÖ³õʼ»¯£¬³õʼ»¯Íê±Ïºó£¬ActionFormµÄvalidate·½·¨±»µ÷Óã¬Äã¿ÉÒÔÔÚÆäÖÐÀ´¼ì²éÇëÇó²ÎÊýµÄÕýÈ·ÐÔºÍÓÐЧÐÔ£¬²¢ÇÒ¿ÉÒÔ½«´íÎóÐÅÏ¢ÒÔActionErrorsµÄÐÎʽ·µ»Øµ½ÊäÈë´°Ìå¡£·ñÔò£¬ActionForm½«±»×÷Ϊ²ÎÊý´«¸øactionµÄexecute·½·¨ÒÔ¹©Ê¹Óá£
ActionForm beanµÄÉúÃüÖÜÆÚ¿ÉÒÔÉèÖÃΪsession£¨È±Ê¡£©ºÍrequest£¬µ±ÉèÖÃΪsessionʱ£¬¼ÇµÃÔÚreset·½·¨Öн«ËùÓеÄÊôÐÔÖØÐÂÉèÖÃΪ³õʼֵ¡£
ÓÉÓÚActionForm¶ÔÓ¦ÓÚHTTP´°Ì壬ËùÒÔËæ×ÅÒ³ÃæµÄÔö¶à£¬ÄãµÄActionForm½«»á¼±ËÙÔö¼Ó¡£¶øÇÒ¿ÉÄÜͬһÀàÐÍÒ³Ãæ×ֶν«»áÔÚ²»Í¬µÄActionFormÖгöÏÖ£¬²¢ÇÒÔÚÿ¸öActionFormÖж¼´æÔÚÏàͬµÄÑéÖ¤´úÂ롣ΪÁ˽â¾öÕâ¸öÎÊÌ⣬Äã¿ÉÒÔΪÕû¸öÓ¦ÓÃʵÏÖÒ»¸öActionForm»òÕßÖÁÉÙÒ»¸öÄ£¿é¶ÔÓ¦ÓÚÒ»¸öActionForm¡£
µ«ÊÇ£¬¾ÛºÏµÄ´ú¼Û¾ÍÊǸ´ÓÃÐԺܲ¶øÇÒÄÑά»¤¡£Õë¶ÔÕâ¸öÎÊÌ⣬ÔÚStruts 1.1ÖÐÌá³öÁËDynaActionFormµÄ¸ÅÄî¡£
DynaActionFormÀà
DynaActionFormµÄÄ¿µÄ¾ÍÊǼõÉÙActionFormµÄÊýÄ¿£¬ÀûÓÃËüÄã²»±Ø´´½¨Ò»¸ö¸ö¾ßÌåµÄActionFormÀ࣬¶øÊÇÔÚÅäÖÃÎļþÖÐÅäÖóöËùÐèµÄÐéÄâActionForm¡£ÀýÈ磬ÔÚϱíÖÐͨ¹ýÖ¸¶¨<form-bean>µÄtypeΪ"org.apache.struts.action.DynaActionForm"À´´´½¨Ò»¸ö¶¯Ì¬µÄActionForm--loginForm¡£
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="actionClass" type="java.lang.String"/>
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
</form-beans>
¶¯Ì¬µÄActionFormµÄʹÓ÷½·¨¸úÆÕͨµÄActionFormÏàͬ£¬µ«ÊÇҪעÒâÒ»µã¡£ÆÕͨµÄActionForm¶ÔÏóÐèҪΪÿ¸öÊôÐÔÌṩgetterºÍsetter·½·¨£¬ÒÔÉÏÃæµÄÀý×Ó¶øÑÔ£¬ÎÒÃÇÐèÒªÌṩgetUsername() ºÍ setUsername()·½·¨È¡µÃºÍÉèÖÃusernameÊôÐÔ£¬Í¬ÑùµØÓÐÒ»¶Ô·½·¨ÓÃÓÚÈ¡µÃºÍÉèÖÃpasswordÊôÐÔºÍactionClassÊôÐÔ¡£
Èç¹ûʹÓÃDynaActionForm£¬Ëü½«ÊôÐÔ±£´æÔÚÒ»¸öHashMapÀà¶ÔÏóÖУ¬Í¬Ê±ÌṩÏàÓ¦µÄget(name) ºÍ set(name)·½·¨£¬ÆäÖвÎÊýnameÊÇÒª·ÃÎʵÄÊôÐÔÃû¡£ÀýÈçÒª·ÃÎÊDynaActionFormÖÐusernameµÄÖµ£¬¿ÉÒÔ²ÉÓÃÀàËÆµÄ´úÂ룺
String username = (String)form.get("username")£»
ÓÉÓÚÖµ´æ·ÅÓÚÒ»¸öHashMap¶ÔÏó£¬ËùÒÔÒª¼ÇµÃ¶Ôget()·½·¨·µ»ØµÄObject¶ÔÏó×öÇ¿ÖÆÐÔÀàÐÍת»»¡£ÕýÊÇÓÉÓÚÕâµãÇø±ð£¬Èç¹ûÄãÔÚActionÖзdz£Æµ·±µØÊ¹ÓÃActionForm¶ÔÏ󣬽¨Ò黹ÊÇʹÓÃÆÕͨµÄActionForm¶ÔÏó¡£
ÔÚStruts 1.1ÖУ¬³ýÁËDynaActionFormÒÔÍ⣬»¹ÌṩÁË±íµ¥ÊäÈë×Ô¶¯ÑéÖ¤µÄ¹¦ÄÜ£¬ÔÚ°üorg.apache.struts.validatorÖÐÌṩÁËÐí¶àÓÐÓõÄÀ࣬ÆäÖÐ×î³£¼ûµÄ¾ÍÊÇDynaValidatorFormÀà¡£
DynaValidatorFormÀà
DynaValidatorFormÊÇDynaActionFormµÄ×ÓÀ࣬ËüÄܹ»Ìṩ¶¯Ì¬ActionFormºÍ×Ô¶¯±íµ¥ÊäÈëÑéÖ¤µÄ¹¦ÄÜ¡£ºÍʹÓÃDynaActionFormÀàËÆ£¬Äã±ØÐëÊ×ÏÈÔÚÅäÖÃÎļþÖнøÐÐÅäÖãº
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="actionClass" type="java.lang.String"/>
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
</form-beans>
ͬʱҪ¶¨ÒåÑéÖ¤µÄ²å¼þ£º
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
ÆäÖеÄvalidator.xmlºÍvalidator-rules.xml·Ö±ð±íʾÑéÖ¤¶¨ÒåºÍÑéÖ¤¹æÔòµÄÄÚÈÝ£¨¿ÉÒԺϲ¢ÔÚÒ»Æð£©£¬±ÈÈçÕë¶ÔÉÏÀýÖеÄDynaValidatorForm£¬ÎÒÃÇÓÐÈçÏÂÑéÖ¤¶¨Ò壨validator.xml£©£º
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<!-- Validation Rules $Id: validation.xml-->
<form-validation>
<!-- ========== Default Language Form Definitions ===================== -->
<formset>
<form name="loginForm">
<field property="username" depends="required, minlength,maxlength">
<arg0 key="prompt.username"/>
<arg1 key="${var:minlength}" name="minlength" resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>
<field property="password" depends="required, minlength,maxlength" bundle="alternate">
<arg0 key="prompt.password"/>
<arg1 key="${var:minlength}" name="minlength" resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!




