14.4 ValueStack 14.4.1 ˵Ã÷
1¡¢ ValueStackÊÇÒ»¸ö½Ó¿Ú£¬ÔÚstruts2ÖÐʹÓÃOGNL±í´ïʽʵ¼ÊÉÏÊÇʹÓÃ
ʵÏÖÁËValueStack½Ó¿ÚµÄÀàOgnlValueStack,Õâ¸öÀàÊÇOgnlValueStackµÄ»ù´¡¡£
2¡¢ ValueStack¹á´©Õû¸öactionµÄÉúÃüÖÜÆÚ¡£Ã¿Ò»¸öactionʵÀý¶¼ÓµÓÐÒ»
¸öValueStack¶ÔÏ󡣯äÖб£´æÁ˵±Ç°action¶ÔÏóºÍÆäËûÏà¹Ø¶ÔÏó¡£ 3¡¢ Struts2°ÑValueStack¶ÔÏó±£´æÖÐÃûΪstruts.valueStackµÄrequestÓòÖС£
14.4.2 ValueStackÄÚ´æÍ¼
14.4.3 ValueStackµÄ×éÖ¯½á¹¹
´ÓͼÉÏ¿ÉÒÔ¿´³öOgnlValueStackºÍÎÒÃÇÓйصÄÄÚÈÝÓÐÁ½²¿·Ö£º¼´OgnlContext
ºÍCompoundRoot¡£ËùÒÔ°ÑÕâÁ½²¿·Ö¸ãÇå³þºÜÖØÒª¡£
14.4.4 14.4.4.1
OgnlContext×éÖ¯½á¹¹
_values
´ÓÉÏÊö¿ÉÒÔ¿´³ö£¬OgnlContextʵ¼ÊÉÏÓÐÒ»²¿·Ö¹¦ÄÜÊÇMap¡£ËùÒÔ¿ÉÒÔ¿´³ö_values¾ÍÊÇÒ»¸öMapÊôÐÔ¡£¶øÔËÐÐÒ»ÏÂÏÂÃæµÄ´úÂë¾Í¿ÉÒÔ¿´µ½£º //ÔÚrequestÓòÖÐÉèÖÃÒ»¸ö²ÎÊý ServletActionContext.getRequest().setAttribute(\name\//ÔÚrequestÓòÖÐÉèÖÃÒ»¸ö²ÎÊý ServletActionContext.getRequest().setAttribute(\//ÔÚsessionÓòÖÐÉèÖÃÒ»¸ö²ÎÊý ActionContext.getContext().getSession().put(\\//ÔÚsessionÓòÖÐÉèÖÃÒ»¸ö²ÎÊý ActionContext.getContext().getSession().put(\\//»ñÈ¡OGNLÖµÕ» ValueStack valueStack = ActionContext.getContext().getValueStack(); ÔÚ_valuesµÄmapÖУº key value application ApplicationMap request RequestMap action ×Ô¼ºÐ´µÄaction com.opensymphoSessionMap ny.xwork2.ActionContext.session
¶ørequestÖеÄֵΪ£º { req_psw=req_psw, req_username=req_username, __cleanup_recursion_counter=1, struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@3d58b2, struts.actionMapping=org.apache.struts2.dispatcher.mapper.ActionMapping@1f713ed }
¿ÉÒÔ¿´³öÔÚ³ÌÐòÖдæ·ÅÔÚrequest×÷ÓÃÓòµÄÖµ±»·ÅÈëµ½ÁË_valuesµÄrequestÓòÖС£
¶ø
com.opensymphony.xwork2.ActionContext.sessionµÄֵΪ£º
{session_username=session_username, session_psw=session_psw} ´ÓÉÏͼÖпÉÒÔ¿´³öÔÚ³ÌÐòÖб»¼ÓÈëµ½sessionµÄÖµÔÚ_valuesÖÐÒ²ÌåÏÖ³öÀ´¡£
14.4.4.2 _root
´ÓͼÖпÉÒÔ¿´³ö_rootʵ¼ÊÉÏCompoundRootÀ࣬´ÓÀàµÄ×éÖ¯½á¹¹Í¼ÖпÉÒÔ¿´³ö£¬Õâ¸öÀàʵ¼ÊÉÏÊǼ̳ÐÁËArrayListÀ࣬Ҳ¾ÍÊÇ˵Õâ¸öÀà¾ßÓм¯ºÏµÄ¹¦ÄÜ¡£¶øÇÒÔÚĬÈÏÇé¿öÏ£¬¼¯ºÏÀàµÄµÚÒ»¸öΪValueStackAction£¬Ò²¾ÍÊÇÎÒÃÇ×Ô¼ºÐ´µÄaction¡£
14.5 ×Üͼ
˵Ã÷£º
1¡¢ ÉÏͼÊÇognlÍêÕûµÄÊý¾Ý½á¹¹Í¼£¬¿ÉÒÔÇåÎúµÃ¿´³öÊý¾ÝµÄ×é³É¡£ 2¡¢ ContextÖеÄ_rootºÍValueStackÖеÄroot(¶ÔÏóÕ»)ÀïµÄÊý¾Ý½á¹¹ºÍÖµÊÇ
Ò»ÑùµÄ¡£
3¡¢ Õâ¾ÍÒâζ×ÅÎÒÃÇÖ»ÐèÒª²Ù×÷OgnlContext¾Í¿ÉÒÔÍê³É¶ÔÊý¾ÝµÄ´æºÍÈ¡
µÄ²Ù×÷¡£
4¡¢ ValueStackÄÚ²¿ÓÐÁ½¸öÂß¼µÄ×é³É²¿·Ö£º
a) ObjectStack
Struts»á°Ñ¶¯×÷ºÍÏà¹ØµÄ¶ÔÏóѹÈëµ½ObjectStackÖС£
b) ContextMap
Struts»á°ÑһЩӳÉä¹ØÏµÑ¹Èëµ½ContextMapÖÐ
14.6 ´æÊý¾Ý 14.6.1 MapÖдæÊý¾Ý
14.6.1.1 ·½·¨1
//ÏòmapÖдæ·ÅÊý¾Ý ServletActionContext.getRequest().setAttribute(\ServletActionContext.getRequest().setAttribute(\ActionContext.getContext().getSession().put(\ActionContext.getContext().getSession().put(\ÉÏÃæµÄ´úÂë¶¼ÊÇÍùContextMapÖдæ·ÅÊý¾Ý¡£ÒòΪÕâЩֵ¶¼ÊǾßÓÐÓ³Éä¹ØÏµµÄ¡£
14.6.1.2 ·½·¨2
ActionContext.getContext().put(\
ͨ¹ýÖ´ÐÐÉÏÊö´úÂë°Ñ¡±msg¡±ºÍ¡±msg_object¡±·ÅÈëµ½ÁËContextMapÖС£
°Ù¶ÈËÑË÷¡°77cn¡±»ò¡°Ãâ·Ñ·¶ÎÄÍø¡±¼´¿ÉÕÒµ½±¾Õ¾Ãâ·ÑÔĶÁÈ«²¿·¶ÎÄ¡£Êղر¾Õ¾·½±ãÏ´ÎÔĶÁ£¬Ãâ·Ñ·¶ÎÄÍø£¬Ìṩ¾µäС˵×ÛºÏÎÄ¿âstruts2(6)ÔÚÏßÈ«ÎÄÔĶÁ¡£
Ïà¹ØÍÆ¼ö£º