1.struts2.0 struts2.1çåºå«
struts2.0 struts2.1çåºå«
Struts1åStruts2çåºå«å对æ¯(转) 1.Action ç±»:
�6�1 Struts1è¦æ±Action类继æ¿ä¸ä¸ªæ½è±¡åºç±»ãStruts1çä¸ä¸ªæ®éé®é¢æ¯ä½¿ç¨æ½è±¡ç±»ç¼ç¨èä¸æ¯æ¥å£ã
�6�1 Struts 2 Actionç±»å¯ä»¥å®ç°ä¸ä¸ªActionæ¥å£ï¼ä¹å¯å®ç°å ¶ä»æ¥å£ï¼ä½¿å¯éåå®å¶çæå¡æ为å¯è½ãStruts2æä¾ä¸ä¸ªActionSupportåºç±»å»å®ç° 常ç¨çæ¥å£ãActionæ¥å£ä¸æ¯å¿ é¡»çï¼ä»»ä½æexecuteæ è¯çPOJO对象é½å¯ä»¥ç¨ä½Struts2çAction对象ã
2.线ç¨æ¨¡å¼:
�6�1 Struts1 Actionæ¯åä¾æ¨¡å¼å¹¶ä¸å¿ é¡»æ¯çº¿ç¨å®å ¨çï¼å ä¸ºä» æActionçä¸ä¸ªå®ä¾æ¥å¤çææç请æ±ãåä¾çç¥éå¶äºStruts1 Actionè½ä½çäºï¼å¹¶ä¸è¦å¨å¼åæ¶ç¹å«å°å¿ãActionèµæºå¿ é¡»æ¯çº¿ç¨å®å ¨çæåæ¥çã
�6�1 Struts2 Action对象为æ¯ä¸ä¸ªè¯·æ±äº§çä¸ä¸ªå®ä¾ï¼å æ¤æ²¡æ线ç¨å®å ¨é®é¢ãï¼å®é ä¸ï¼servlet容å¨ç»æ¯ä¸ªè¯·æ±äº§ç许å¤å¯ä¸¢å¼ç对象ï¼å¹¶ä¸ä¸ä¼å¯¼è´æ§è½ååå¾åæ¶é®é¢ï¼
3.Servlet ä¾èµ:
�6�1 Struts1 Action ä¾èµäºServlet API ,源码编辑射击游戏å 为å½ä¸ä¸ªAction被è°ç¨æ¶HttpServletRequest å HttpServletResponse è¢«ä¼ éç»executeæ¹æ³ã
�6�1 Struts 2 Actionä¸ä¾èµäºå®¹å¨ï¼å 许Actionè±ç¦»å®¹å¨åç¬è¢«æµè¯ãå¦æéè¦ï¼Struts2 Actionä»ç¶å¯ä»¥è®¿é®åå§çrequeståresponseãä½æ¯ï¼å ¶ä»çå ç´ åå°æè æ¶é¤äºç´æ¥è®¿é®HttpServetRequest å HttpServletResponseçå¿ è¦æ§ã
4.å¯æµæ§:
�6�1 æµè¯Struts1 Actionçä¸ä¸ªä¸»è¦é®é¢æ¯executeæ¹æ³æ´é²äºservlet APIï¼è¿ä½¿å¾æµè¯è¦ä¾èµäºå®¹å¨ï¼ãä¸ä¸ªç¬¬ä¸æ¹æ©å±ï¼ï¼Struts TestCaseï¼ï¼æä¾äºä¸å¥Struts1ç模æ对象ï¼æ¥è¿è¡æµè¯ï¼ã
�6�1 Struts 2 Actionå¯ä»¥éè¿åå§åã设置å±æ§ãè°ç¨æ¹æ³æ¥æµè¯ï¼âä¾èµæ³¨å ¥âæ¯æä¹ä½¿æµè¯æ´å®¹æã
5.æè·è¾å ¥:
�6�1 Struts1 使ç¨ActionForm对象æè·è¾å ¥ãææçActionFormå¿ é¡»ç»§æ¿ä¸ä¸ªåºç±»ãå ä¸ºå ¶ä»JavaBeanä¸è½ç¨ä½ActionFormï¼å¼åè ç»å¸¸å建å¤ä½çç±»æè·è¾å ¥ãå¨æBeanï¼DynaBeansï¼å¯ä»¥ä½ä¸ºåå»ºä¼ ç»ActionFormçéæ©ï¼ä½æ¯ï¼å¼åè å¯è½æ¯å¨éæ°æè¿°(å建)å·²ç»åå¨çJavaBeanï¼ä»ç¶ä¼å¯¼è´æåä½çjavabeanï¼ã
�6�1 Struts 2ç´æ¥ä½¿ç¨Actionå±æ§ä½ä¸ºè¾å ¥å±æ§ï¼æ¶é¤äºå¯¹ç¬¬äºä¸ªè¾å ¥å¯¹è±¡çéæ±ãè¾å ¥å±æ§å¯è½æ¯æèªå·±(å)å±æ§çrich对象类åãActionå±æ§è½å¤éè¿web页é¢ä¸çtaglibs访é®ãStruts2ä¹æ¯æActionForm模å¼ãrich对象类åï¼å æ¬ä¸å¡å¯¹è±¡ï¼è½å¤ç¨ä½è¾å ¥/è¾åºå¯¹è±¡ãè¿ç§ModelDriven ç¹æ§ç®åäºtaglib对POJOè¾å ¥å¯¹è±¡çå¼ç¨ã
6.表达å¼è¯è¨ï¼
�6�1 Struts1 æ´åäºJSTLï¼å æ¤ä½¿ç¨JSTL ELãè¿ç§ELæåºæ¬å¯¹è±¡å¾éåï¼ä½æ¯å¯¹éååç´¢å¼å±æ§çæ¯æå¾å¼±ã
�6�1 Struts2å¯ä»¥ä½¿ç¨JSTLï¼ä½æ¯ä¹æ¯æä¸ä¸ªæ´å¼ºå¤§åçµæ´»ç表达å¼è¯è¨ï¼ï¼"Object Graph Notation Language" (OGNL).
7.ç»å®å¼å°é¡µé¢ï¼viewï¼:
�6�1 Struts 1使ç¨æ åJSPæºå¶æ对象ç»å®å°é¡µé¢ä¸æ¥è®¿é®ã
�6�1 Struts 2 ä½¿ç¨ "ValueStack"ææ¯ï¼ä½¿taglibè½å¤è®¿é®å¼èä¸éè¦æä½ ç页é¢ï¼viewï¼å对象ç»å®èµ·æ¥ãValueStackçç¥å 许éè¿ä¸ç³»åå称ç¸åä½ç±»åä¸åçå±æ§éç¨é¡µé¢ï¼viewï¼ã
ã
8.ç±»å转æ¢ï¼
�6�1 Struts 1 ActionForm å±æ§é常é½æ¯Stringç±»åãStruts1使ç¨Commons-Beanutilsè¿è¡ç±»å转æ¢ãæ¯ä¸ªç±»ä¸ä¸ªè½¬æ¢å¨ï¼å¯¹æ¯ä¸ä¸ªå®ä¾æ¥è¯´æ¯ä¸å¯é ç½®çã
�6�1 Struts2 使ç¨OGNLè¿è¡ç±»å转æ¢ãæä¾åºæ¬å常ç¨å¯¹è±¡ç转æ¢å¨ã
9.æ ¡éªï¼
�6�1 Struts 1æ¯æå¨ActionFormçvalidateæ¹æ³ä¸æå¨æ ¡éªï¼æè éè¿Commons Validatorçæ©å±æ¥æ ¡éªãåä¸ä¸ªç±»å¯ä»¥æä¸åçæ ¡éªå 容ï¼ä½ä¸è½æ ¡éªå对象ã
�6�1 Struts2æ¯æéè¿validateæ¹æ³åXWorkæ ¡éªæ¡æ¶æ¥è¿è¡æ ¡éªãXWorkæ ¡éªæ¡æ¶ä½¿ç¨ä¸ºå±æ§ç±»ç±»åå®ä¹çæ ¡éªåå å®¹æ ¡éªï¼æ¥æ¯æchainæ ¡éªåå±æ§
.Actionæ§è¡çæ§å¶ï¼
�6�1 Struts1æ¯ææ¯ä¸ä¸ªæ¨¡åæåç¬çRequest Processorsï¼çå½å¨æï¼ï¼ä½æ¯æ¨¡åä¸çææActionå¿ é¡»å ±äº«ç¸åççå½å¨æã
�6�1 Struts2æ¯æéè¿æ¦æªå¨å æ ï¼Interceptor Stacksï¼ä¸ºæ¯ä¸ä¸ªActionå建ä¸åççå½å¨æãå æ è½å¤æ ¹æ®éè¦åä¸åçActionä¸èµ·ä½¿ç¨ã
åç §ï¼ /?show_full=true ä»å客éæå¾å¤