免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 834 | 回复: 0
打印 上一主题 下一主题

ActionMapping [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-08 15:24 |只看该作者 |倒序浏览
在Struts 1.1之後,很多的请求分配职责都落入了RequestProcessor的手上,ActionServlet则专责於组态配置及应用程式模组的设定。
RequestProcessor采取 Command 模式,根据客户端的请求呼叫Action物件,其分配的依据是客户端请求的URI及Action物件的对应,这些都设定在struts- config.xml的标签中。
用来描述一组ActionMapping物件,当中的每一个 标签都对应一个ActionMapping物件,当客户端发出请求至RequestProcessor时,请求的URI对应於标签中设定的path属性,而要呼叫的Action物件则是type属性所设定的物件,RequestProcessor会将请求的 执行工作交给该Action物件来执行。
举个例子来说,如果设定如下的话:
...             path="/hello"         type="onlyfun.caterpillar.HelloAction">         ....                  path="/login"         type="onlyfun.caterpillar.LoginAction">         ....        ...
则当请求的URL是http://localhost:8080/strutsapp/hello.do时, RequestProcessor会使用/hello.do来确认对应的ActionMapping物件(实际上即找出path设定为/hello的 標籤),该ActionMapping物件告知RequestProcessor要使用 onlyfun.caterpillar.HelloAction,而後RequestProcessor会将呼叫HelloAction的 execute()方法,并将ActionMapping物件当作参数传递给它。
RequestProcessor实际上将工作交给Action物件,Action物件在第一次被呼叫时产生,之後一直使用它。 Action物件的运作必须提供一些参数来描述工作的细节,诸如使用哪一个ActionForm、forward对象的查找、错误发生时的页面对象等等, Struts将这些资讯包装在ActionMapping中,并作为参数传送给Action物件,以使得Action在需要相关的资讯时可以从 ActionMapping中取得。
如果客户端请求了struts-config.xml中没有定义的资源,Struts会丢出 404 Invalid path 的讯息,您可以撰写匿名的ActionMapping来提供自己的错误讯息:
...       name="error"     unknown="true"     forward="/WEB-INF/pages/error.jsp"/> ...
如果RequestProcessor遇到没有定义的Action请求,则会交由匿名的ActionMapping来处理。
在标签中会使用标签,用於查找与指定Action物件完成之後,要转发请求回应的去向,您使 用ActionMapping的findForward()方法来查找对应的forward对象,另外,您也可以提供一个设定,如果ActionMapping的findForward()方法找不到指定的forward对象,则会查找 所设定的对象,一个设定例子如下:

  • struts-config.xml
...
  
     
         
   
   
         
              
         
         
              
         
     
  
...
提供一个全局可查找的forward对象,在Struts的组态中,可以为每一个 标签指定forward对象,如果在中查找不到,就会至中查找。对於一些共同使用的forward对象,您可以集中於中管理。
在Struts中,ActionMapping继承自ActionConfig,大部份的属性定义实际上都已经在ActionConfig 中完成,在将来ActionMapping有可能会被AutoConfig所取代,不过在目前ActionMapping仍旧存在,根据线上API的说 明,存在的事实基於它仍是现存应用程式所使用到的类别。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18825/showart_228289.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP